Today I found out that GetWindowLong (and GetWindowLongPtr ) have ANSI (A) and Unicode (W) attributes, even if they don't have TSTR arguments. The MSDN page on GetWindowLong only indicates that these options exist, but does not mention why.
I can imagine that it should correspond to the encoding CreateWindowEx (which also has A / W flavors) or RegisterClass , but for many reasons I do not think this makes sense. Apparently, this is important because someone said that the Unicode version may fail on XP (although XP is NT and, as I understand it, all Unicode is under the hood). I also tried to parse the 32-bit version of USER32.DLL (which contains both versions of GetWindowLong ), and there is additional work done based on some apparent difference in encoding *.
Which function should I choose?
* GetWindowLong identical except for the boolean ones that they pass to other functions. This boolean value is compared with the flag bit in the memory structure. I can't worry to track it with static code analysis.
user824425
source share