user32/tests: Mark built-in wndproc auto-detection behaviour as broken on Windows 8 and 10.

Dmitry Timoshkov dmitry at baikal.ru
Wed Nov 23 07:54:02 CST 2016


Huw Davies <huw at codeweavers.com> wrote:

> >> +    SendMessageW(hwnd, WM_GETTEXT, sizeof(buf) / sizeof(buf[0]), (LPARAM)buf);
> >> +    if (IsWindowUnicode(hwnd))
> >> +        ok(memcmp(buf, unistring, sizeof(unistring)) == 0, "WM_GETTEXT invalid return\n");
> >> +    else
> >> +        ok(memcmp(buf, unistring, sizeof(unistring)) != 0, "WM_GETTEXT invalid return\n");
> > 
> > This doesn't look right. SendMessageW(WM_GETTEXT) is supposed to always
> > return a unicode string regardless of wheather IsWindowUnicode() is broken
> > or not, otherwise a lot of applications would misbehave in weird ways.
> > This needs further investigation.
> 
> Exactly, the reason I added that bit was to show that this behaviour
> is truly broken.

Sorry, but I can't believe that such a basic functionality like returning
a unicode string using SendMessageW(WM_GETTEXT) is actually broken. Any UI
uses it to retrieve and pass strings around for various purposes from getting
username/password/regisration to getting random user input, so if it would be
broken that would mean a lot of applications/installers/UI libraries/etc. were
broken, and that wouldn't stay unnoticed.

-- 
Dmitry.



More information about the wine-devel mailing list