From: Andrew Wesie Subject: [v2 3/3] user32/tests: Add test for GetWindowDisplayAffinity. Message-Id: <1498261581-12494-1-git-send-email-awesie@gmail.com> Date: Fri, 23 Jun 2017 16:46:21 -0700 Signed-off-by: Andrew Wesie --- dlls/user32/tests/win.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c index 2399228..0003ef0 100644 --- a/dlls/user32/tests/win.c +++ b/dlls/user32/tests/win.c @@ -64,6 +64,8 @@ static BOOL (WINAPI *pGetProcessDefaultLayout)( DWORD *layout ); static BOOL (WINAPI *pSetProcessDefaultLayout)( DWORD layout ); static BOOL (WINAPI *pFlashWindow)( HWND hwnd, BOOL bInvert ); static BOOL (WINAPI *pFlashWindowEx)( PFLASHWINFO pfwi ); +static BOOL (WINAPI *pGetWindowDisplayAffinity)( HWND hwnd, DWORD *affinity ); +static BOOL (WINAPI *pSetWindowDisplayAffinity)( HWND hwnd, DWORD affinity ); static DWORD (WINAPI *pSetLayout)(HDC hdc, DWORD layout); static DWORD (WINAPI *pGetLayout)(HDC hdc); static BOOL (WINAPI *pMirrorRgn)(HWND hwnd, HRGN hrgn); @@ -9832,6 +9834,49 @@ static void test_desktop( void ) } } +static void test_display_affinity(void) +{ + BOOL ret; + DWORD affinity; + HWND hwnd; + + if (!pGetWindowDisplayAffinity) + { + win_skip( "GetWindowDisplayAffinity not supported\n" ); + return; + } + + hwnd = CreateWindowExA(0, "MainWindowClass", "message window", WS_CAPTION, + 100, 100, 200, 200, 0, 0, 0, NULL); + assert( hwnd ); + /* required for win7 */ + SetWindowLongA( hwnd, GWL_EXSTYLE, GetWindowLongA(hwnd, GWL_EXSTYLE) & ~WS_EX_LAYERED ); + + ret = pGetWindowDisplayAffinity( hwnd, &affinity ); + ok( ret, "GetWindowDisplayAffinity returned with %d\n", GetLastError() ); + ok( affinity == WDA_NONE, "GetWindowDisplayAffinity returned unexpected affinity %d\n", affinity ); + + ret = pSetWindowDisplayAffinity( hwnd, WDA_MONITOR ); + ok( ret, "SetWindowDisplayAffinity returned with %d\n", GetLastError() ); + + ret = pGetWindowDisplayAffinity( hwnd, &affinity ); + ok( ret, "GetWindowDisplayAffinity returned with %d\n", GetLastError() ); + ok( affinity == WDA_MONITOR, "GetWindowDisplayAffinity returned unexpected affinity %d\n", affinity ); + + ret = pSetWindowDisplayAffinity( hwnd, WDA_NONE ); + ok( ret, "SetWindowDisplayAffinity returned with %d\n", GetLastError() ); + + ret = pGetWindowDisplayAffinity( hwnd, &affinity ); + ok( ret, "GetWindowDisplayAffinity returned with %d\n", GetLastError() ); + ok( affinity == WDA_NONE, "GetWindowDisplayAffinity returned unexpected affinity %d\n", affinity ); + + ret = pSetWindowDisplayAffinity( hwnd, ~WDA_MONITOR ); + ok( !ret, "SetWindowDisplayAffinity succeeded\n" ); + ok( GetLastError() == ERROR_INVALID_PARAMETER, "SetWindowDisplayAffinity returned error %d\n", GetLastError() ); + + DestroyWindow( hwnd ); +} + START_TEST(win) { char **argv; @@ -9853,6 +9898,8 @@ START_TEST(win) pSetProcessDefaultLayout = (void *)GetProcAddress( user32, "SetProcessDefaultLayout" ); pFlashWindow = (void *)GetProcAddress( user32, "FlashWindow" ); pFlashWindowEx = (void *)GetProcAddress( user32, "FlashWindowEx" ); + pGetWindowDisplayAffinity = (void *)GetProcAddress( user32, "GetWindowDisplayAffinity" ); + pSetWindowDisplayAffinity = (void *)GetProcAddress( user32, "SetWindowDisplayAffinity" ); pGetLayout = (void *)GetProcAddress( gdi32, "GetLayout" ); pSetLayout = (void *)GetProcAddress( gdi32, "SetLayout" ); pMirrorRgn = (void *)GetProcAddress( gdi32, "MirrorRgn" ); @@ -9981,6 +10028,7 @@ START_TEST(win) test_deferwindowpos(); test_LockWindowUpdate(hwndMain); test_desktop(); + test_display_affinity(); /* add the tests above this line */ if (hhook) UnhookWindowsHookEx(hhook); -- 2.7.4