On 17 Mar 2003, Mike Hearn wrote:
And yes, I found that this morning as well :) At least in WinAmp, changing it to ansi seems to fix it....
You mean just making the if() be trivially true?
In Feb 2003, Drew "DanteAliegri" Ogle dantealiegri@umbc.edu started looking into this problem, and I told him the story.
Which he repeated to me on IRC on sunday (so big thanks to dante)
Indeed -- a big thanks indeed.
This bit confuses me... what do you mean by actually sent? As in, actually sent on Windows?
Yes, that's my understading. You can just download the executables and run them yourself on Windows, see what you get.
At least one issue seems to be that the NOTIFYFORMAT message returns different results under Wine and Win2K, on Windows the WinAmp prefs dialog wants ANSI, on Wine it wants Unicode. So perhaps the bug is actually in the way Wine determines whether a dialog is ansi/unicode, and the treeview (and winamp) are both correct?
That's my intuition as well, but we need to test it on Windows.
Well, I changed treeview.c to use get_notifycode (ie it's doing the right thing). That breaks WinAmp, probably trillian and putty too.
What do you mean? It was already using get_notifycode, no changes are needed, AFAIK. What exaclty did you change?
The test cases now work OK, and give expected results. They give expected results on Win2K Terminal Server edition as well.
Cool.
So it looks like the treeview component isn't buggy on Windows, it does send Unicode when it's asked to.
Can you also look to duplicate the tests for the listview as well? That stange behaviour for listview bothers me greatly.
That just makes me even more suspicious of the strangely morphing WM_NOTIFYFORMAT result. I tried finding which API call created the prefs dialog in WinAmp in a logger trace on XP, but couldn't, which confused the hell out of me, in Wine it appears as a CreateWindowExW (strangely, the others are CreateWindowExA) - BUT it doesn't appear in a relay trace and it doesn't seem to be loaded via GetProcAddress :(
So I think IsWindowUnicode is giving a "wrong" result on Wine. But I don't know where to look next.
Why "you think"? It seems you actually see it give the wrong result, no?