From: Christian Costa Subject: [PATCH] user32: Add tests showing that MapWindowPoints, ClientToScreen and ScreenToClient never fail. Message-Id: <20121016181242.28382.25243.stgit@titanhost> Date: Tue, 16 Oct 2012 20:12:42 +0200 --- dlls/user32/tests/win.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index e84824d..298ea07 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -7104,6 +7104,54 @@ todo_wine ok(ret, "UnregisterClass(my_window) failed\n"); } +static void test_client_screen(void) +{ + BOOL ret; + RECT rect; + POINT point; + HWND wnd; + + ret = GetWindowRect(GetDesktopWindow(), &rect); + ok(ret, "GetWindowRect failed with %#x\n", GetLastError()); + + wnd = CreateWindowA("static", NULL, 0, 0, 0, rect.right / 2, rect.bottom / 2, 0, 0, 0, 0); + //SetWindowPos(wnd, NULL, 0, 0, rect.right / 2, rect.bottom / 2, 0); + + /* Choose point inside the client area */ + point.x = rect.right / 2 - 50; + point.y = rect.bottom / 2 - 50; + ret = ClientToScreen(wnd, &point); + ok(ret, "ClientToScreen failed with %#x\n", GetLastError()); + ret = MapWindowPoints(wnd, NULL, &point, 1); + ok(ret, "MapWindowPoints failed with %#x\n", GetLastError()); + + /* Choose point outside the client area */ + point.x = rect.right / 2 + 50; + point.y = rect.bottom / 2 + 50; + ret = ClientToScreen(wnd, &point); + ok(ret, "ClientToScreen failed with %#x\n", GetLastError()); + ret = MapWindowPoints(wnd, NULL, &point, 1); + ok(ret, "MapWindowPoints failed with %#x\n", GetLastError()); + + /* Choose point inside the client area */ + point.x = rect.right / 2 - 50; + point.y = rect.bottom / 2 - 50; + ret = ScreenToClient(wnd, &point); + ok(ret, "ScreenToClient failed with %#x\n", GetLastError()); + ret = MapWindowPoints(NULL, wnd, &point, 1); + ok(ret, "MapWindowPoints failed with %#x\n", GetLastError()); + + /* Choose point outside the client area */ + point.x = rect.right / 2 + 50; + point.y = rect.bottom / 2 + 50; + ret = ScreenToClient(wnd, &point); + ok(ret, "ScreenToClient failed with %#x\n", GetLastError()); + ret = MapWindowPoints(NULL, wnd, &point, 1); + ok(ret, "MapWindowPoints failed with %#x\n", GetLastError()); + + DestroyWindow(wnd); +} + START_TEST(win) { HMODULE user32 = GetModuleHandleA( "user32.dll" ); @@ -7212,6 +7260,7 @@ START_TEST(win) test_shell_window(); test_handles( hwndMain ); test_winregion(); + test_client_screen(); /* add the tests above this line */ if (hhook) UnhookWindowsHookEx(hhook);