From 188610e603ec1a9daa2229a69472fc1421c75555 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alex=20Villac=C3=ADs=20Lasso?= Date: Wed, 7 Nov 2007 10:36:53 -0500 Subject: [PATCH] user32: Fix for failing tests of LB_GETTEXT on listbox on Win98. --- dlls/user32/tests/listbox.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/dlls/user32/tests/listbox.c b/dlls/user32/tests/listbox.c index 7fd56597ef4..8009d38f1b5 100644 --- a/dlls/user32/tests/listbox.c +++ b/dlls/user32/tests/listbox.c @@ -166,15 +166,23 @@ check (const struct listbox_test test) DWORD size = SendMessage (hLB, LB_GETTEXTLEN, i, 0); CHAR *txt; WCHAR *txtw; + int resA, resW; txt = HeapAlloc (GetProcessHeap(), 0, size+1); - SendMessageA(hLB, LB_GETTEXT, i, (LPARAM)txt); + memset(txt, 0, size+1); + resA=SendMessageA(hLB, LB_GETTEXT, i, (LPARAM)txt); ok(!strcmp (txt, strings[i]), "returned string for item %d does not match %s vs %s\n", i, txt, strings[i]); txtw = HeapAlloc (GetProcessHeap(), 0, 2*size+2); - SendMessageW(hLB, LB_GETTEXT, i, (LPARAM)txtw); - WideCharToMultiByte( CP_ACP, 0, txtw, -1, txt, size, NULL, NULL ); - ok(!strcmp (txt, strings[i]), "returned string for item %d does not match %s vs %s\n", i, txt, strings[i]); + memset(txtw, 0, 2*size+2); + resW=SendMessageW(hLB, LB_GETTEXT, i, (LPARAM)txtw); + if (resA != resW) { + trace("SendMessageW(LB_GETTEXT) not supported on this platform (resA=%d resW=%d), skipping...\n", + resA, resW); + } else { + WideCharToMultiByte( CP_ACP, 0, txtw, -1, txt, size, NULL, NULL ); + ok(!strcmp (txt, strings[i]), "returned string for item %d does not match %s vs %s\n", i, txt, strings[i]); + } HeapFree (GetProcessHeap(), 0, txtw); HeapFree (GetProcessHeap(), 0, txt); -- 2.11.4.GIT