http://bugs.winehq.org/show_bug.cgi?id=7512
------- Additional Comments From dmitry@codeweavers.com 2007-11-07 07:04 -------
Under Wine it looks pretty similar and according to IsWindowUnicode() HANDLE becomes first non-uncode then returns back to unicode mode, but it stops processing SetWindowTextW() as unicode and expects ANSI string passed to this function. Definitely it's a bug in Wine :-)
Your understanding is not really correct. There are tests in Wine that show that Wine behaves correctly in treating ANSI/Unicode window procs. It appears that Windows has an extra hack, probably to make broken code like in library you are using work.