Module: wine Branch: master Commit: 43dcd40c0b6042cec4f072079be8c33e77a08b17 URL: http://source.winehq.org/git/wine.git/?a=commit;h=43dcd40c0b6042cec4f072079b...
Author: Piotr Caban piotr@codeweavers.com Date: Tue Oct 28 12:19:40 2014 +0100
user32: Show that IME window class is one of builtin classes.
---
dlls/user32/tests/class.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+)
diff --git a/dlls/user32/tests/class.c b/dlls/user32/tests/class.c index 1d35832..2218e79 100644 --- a/dlls/user32/tests/class.c +++ b/dlls/user32/tests/class.c @@ -1101,6 +1101,57 @@ static void test_comctl32_classes(void) } }
+static void test_IME(void) +{ + static const WCHAR ime_classW[] = {'I','M','E',0}; + + char module_name[MAX_PATH], *ptr; + MEMORY_BASIC_INFORMATION mbi; + HMODULE imm32 = NULL; + WNDCLASSW wnd_classw; + WNDCLASSA wnd_class; + SIZE_T size; + BOOL ret; + + if (!GetProcAddress(GetModuleHandleA("user32.dll"), "BroadcastSystemMessageExA")) + { + skip("BroadcastSystemMessageExA not available, skipping IME class test\n"); + return; + } + + todo_wine ok(GetModuleHandleA("imm32") != 0, "imm32.dll is not loaded\n"); + if (!GetModuleHandleA("imm32")) + imm32 = LoadLibraryA("imm32"); + + ret = GetClassInfoA(NULL, "IME", &wnd_class); + ok(ret, "GetClassInfo failed: %d\n", GetLastError()); + + size = VirtualQuery(wnd_class.lpfnWndProc, &mbi, sizeof(mbi)); + todo_wine ok(size == sizeof(mbi), "VirtualQuery returned %ld\n", size); + if (size == sizeof(mbi)) { + size = GetModuleFileNameA(mbi.AllocationBase, module_name, sizeof(module_name)); + ok(size, "GetModuleFileName failed\n"); + for (ptr = module_name+size-1; ptr > module_name; ptr--) + if (*ptr == '\' || *ptr == '/') break; + if (*ptr == '\' || *ptr=='/') ptr++; + ok(!lstrcmpiA(ptr, "user32.dll") || !lstrcmpiA(ptr, "ntdll.dll"), "IME window proc implemented in %s\n", ptr); + } + + ret = GetClassInfoW(NULL, ime_classW, &wnd_classw); + ok(ret, "GetClassInfo failed: %d\n", GetLastError()); + + size = VirtualQuery(wnd_classw.lpfnWndProc, &mbi, sizeof(mbi)); + ok(size == sizeof(mbi), "VirtualQuery returned %ld\n", size); + size = GetModuleFileNameA(mbi.AllocationBase, module_name, sizeof(module_name)); + ok(size, "GetModuleFileName failed\n"); + for (ptr = module_name+size-1; ptr > module_name; ptr--) + if (*ptr == '\' || *ptr == '/') break; + if (*ptr == '\' || *ptr=='/') ptr++; + todo_wine ok(!lstrcmpiA(ptr, "user32.dll") || !lstrcmpiA(ptr, "ntdll.dll"), "IME window proc implemented in %s\n", ptr); + + if (imm32) FreeLibrary(imm32); +} + START_TEST(class) { char **argv; @@ -1113,6 +1164,7 @@ START_TEST(class) return; }
+ test_IME(); test_GetClassInfo(); test_extra_values();