From: "Anna (navi) Figueiredo Gomes" <navi@vlhl.dev> --- dlls/win32u/tests/win32u.c | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/dlls/win32u/tests/win32u.c b/dlls/win32u/tests/win32u.c index 19c05a97835..a7087d46e9d 100644 --- a/dlls/win32u/tests/win32u.c +++ b/dlls/win32u/tests/win32u.c @@ -2949,6 +2949,44 @@ static void test_NtUserRegisterWindowMessage(void) ok( !wcscmp( buf, L"#0xabc" ), "buf = %s\n", debugstr_w(buf) ); } +static BOOL CALLBACK get_virtual_screen_proc( HMONITOR monitor, HDC hdc, LPRECT rect, LPARAM lp ) +{ + RECT *virtual_rect = (RECT *)lp; + UnionRect( virtual_rect, virtual_rect, rect ); + return TRUE; +} + +static RECT get_virtual_screen_rect(void) +{ + RECT rect = {0}; + EnumDisplayMonitors( 0, NULL, get_virtual_screen_proc, (LPARAM)&rect ); + return rect; +} + +void test_NtUserGetPointerDeviceRects(void) +{ + RECT screen = get_virtual_screen_rect(), device = {0}, display = {0}; + const int himetric_inch = 2540; + UINT dpi = GetDpiForSystem(); + RECT himetric_dev = { + .left = MulDiv( screen.left, himetric_inch, dpi ), + .top = MulDiv( screen.top, himetric_inch, dpi ), + .right = MulDiv( screen.right, himetric_inch, dpi ), + .bottom = MulDiv( screen.bottom, himetric_inch, dpi ), + }; + UINT ret; + + ret = NtUserGetPointerDeviceRects( INVALID_HANDLE_VALUE, &device, &display ); + todo_wine + { + ok( ret, "NtUserGetPointerDeviceRects failed, error %lu.\n", GetLastError() ); + ok( EqualRect( &device, &himetric_dev ), "device %s, expected %s\n", + wine_dbgstr_rect( &device ), wine_dbgstr_rect( &himetric_dev ) ); + ok( EqualRect( &display, &screen ), "display %s, expected %s\n", + wine_dbgstr_rect( &display ), wine_dbgstr_rect( &screen ) ); + } +} + START_TEST(win32u) { char **argv; @@ -3000,6 +3038,7 @@ START_TEST(win32u) test_NtUserQueryWindow(); test_RegisterClipboardFormat(); test_NtUserRegisterWindowMessage(); + test_NtUserGetPointerDeviceRects(); run_in_process( argv, "NtUserEnableMouseInPointer 0" ); run_in_process( argv, "NtUserEnableMouseInPointer 1" ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10649