http://bugs.winehq.org/show_bug.cgi?id=7512
------- Additional Comments From lightning_uk@imgburn.com 2007-22-02 15:13 ------- Ok, just to update this thread, I've done some debugging on the differences between Windows and Wine having read what you've said in this thread about problems with the way wndproc is being set/called.
Of course I guess it all really comes down to what 'correct' really means. Does it mean doing it right or does it mean emulating windows exact behaviour, be it right or wrong?!
Having changed line 1595 in TntStdCtrls.pas from:
SetWindowLongW(EditHandle, GWL_WNDPROC, GetWindowLong(EditHandle, GWL_WNDPROC));
to read:
SetWindowLongW(EditHandle, GWL_WNDPROC, GetWindowLongW(EditHandle, GWL_WNDPROC));
.... wine then works perfectly.
The trouble is, it then doesn't work under the real Windows.
With a bit of debug info added to my program, here's the output from me typing 'testing' into a combobox and then pressing a button to have the program examine it.
In Windows:
D 19:35:36 ComboBox's Edit window is Unicode enabled. D 19:35:36 WM_GETTEXTLENGTH Length = 7 D 19:35:36 WM_GETTEXT Length = 7 D 19:35:36 74 00 00 00 65 00 00 00 73 00 00 00 74 00 <- Note: this is whats in the buffer after the WMGETTEXT call. D 19:35:36 Control->Text Length = 1 D 19:35:36 74 00
Clearly the byte output should be something more like:
74 00 65 00 73 00 74 00....
In Linux/Wine:
D 19:38:06 ComboBox's Edit window is Unicode enabled. D 19:38:06 WM_GETTEXTLENGTH Length = 7 D 19:38:06 WM_GETTEXT Length = 7 D 19:38:06 74 00 65 00 73 00 74 00 69 00 6E 00 67 00 D 19:38:06 Control->Text Length = 7 D 19:38:06 74 00 65 00 73 00 74 00 69 00 6E 00 67 00
So it looks like it does a double unicode conversion (of sorts!) under windows with that line changed.
Being a windows app, I can't go leaving this modification in place as it would be breaking the app for the majority of it's users. It is however a shame that it won't work for any linux/wine users because of this.
If it's of any interest, I've also started a thread on the Tnt support webboards.
http://webboard.ccci.org:8080/~tnt/read?7356,7e#7356