[PATCH 0/1] MR5155: user32: add stub for GetPointerDeviceRects.
might fix https://bugs.winehq.org/show_bug.cgi?id=56363, waiting for a reply -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5155
From: Etaash Mathamsetty <45927311+Etaash-mathamsetty(a)users.noreply.github.com> --- dlls/user32/user32.spec | 1 + dlls/win32u/input.c | 10 ++++++++++ dlls/win32u/main.c | 5 +++++ dlls/win32u/win32u.spec | 2 +- dlls/wow64win/user.c | 9 +++++++++ include/ntuser.h | 1 + 6 files changed, 27 insertions(+), 1 deletion(-) diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index 042730845f1..13427f4f07b 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -358,6 +358,7 @@ @ stdcall GetOpenClipboardWindow() NtUserGetOpenClipboardWindow @ stdcall GetParent(long) @ stdcall GetPhysicalCursorPos(ptr) +@ stdcall GetPointerDeviceRects(long ptr ptr) NtUserGetPointerDeviceRects @ stdcall GetPointerDevices(ptr ptr) @ stdcall GetPointerInfo(long ptr) @ stdcall GetPointerType(long ptr) diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c index ef8d564c264..e124c915a6e 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c @@ -2530,6 +2530,16 @@ BOOL clip_fullscreen_window( HWND hwnd, BOOL reset ) return ret; } +/********************************************************************** + * NtUserGetPointerDeviceRects (win32u.@) + */ +BOOL WINAPI NtUserGetPointerDeviceRects( HANDLE device, RECT *pointer_display_rect, RECT *display_rect ) +{ + FIXME( "device %p pointer_display_rect %p display_rect %p\n", device, pointer_display_rect, display_rect ); + RtlSetLastWin32Error( ERROR_CALL_NOT_IMPLEMENTED ); + return FALSE; +} + /********************************************************************** * NtUserGetPointerInfoList (win32u.@) */ diff --git a/dlls/win32u/main.c b/dlls/win32u/main.c index 3f910c214ed..b1c645e0719 100644 --- a/dlls/win32u/main.c +++ b/dlls/win32u/main.c @@ -1483,6 +1483,11 @@ HWND SYSCALL_API NtUserGetOpenClipboardWindow(void) __ASM_SYSCALL_FUNC( __id_NtUserGetOpenClipboardWindow ); } +BOOL SYSCALL_API NtUserGetPointerDeviceRects( HANDLE device, RECT *pointer_display_rect, RECT *diplay_rect ) +{ + __ASM_SYSCALL_FUNC( __id_NtUserGetPointerDeviceRects ); +} + BOOL SYSCALL_API NtUserGetPointerInfoList( UINT32 id, POINTER_INPUT_TYPE type, UINT_PTR unk0, UINT_PTR unk1, SIZE_T size, UINT32 *entry_count, UINT32 *pointer_count, void *pointer_info ) { diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 76a60bf1dc8..24c68776838 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -968,7 +968,7 @@ @ stub NtUserGetPointerDeviceInputSpace @ stub NtUserGetPointerDeviceOrientation @ stub NtUserGetPointerDeviceProperties -@ stub NtUserGetPointerDeviceRects +@ stdcall -syscall NtUserGetPointerDeviceRects(long ptr ptr) @ stub NtUserGetPointerDevices @ stub NtUserGetPointerFrameTimes @ stdcall -syscall NtUserGetPointerInfoList(long long long long long ptr ptr ptr) diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index 2dd811578f5..e84fc2616f5 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -2744,6 +2744,15 @@ NTSTATUS WINAPI wow64_NtUserGetOpenClipboardWindow( UINT *args ) return HandleToUlong( NtUserGetOpenClipboardWindow() ); } +NTSTATUS WINAPI wow64_NtUserGetPointerDeviceRects( UINT *args ) +{ + HANDLE handle = get_handle( &args ); + void *pointer_display_rect = get_ptr( &args ); + void *display_rect = get_ptr( &args ); + + return NtUserGetPointerDeviceRects( handle, pointer_display_rect, display_rect ); +} + NTSTATUS WINAPI wow64_NtUserGetPointerInfoList( UINT *args ) { UINT id = get_ulong( &args ); diff --git a/include/ntuser.h b/include/ntuser.h index 86f847b8b83..cde949ffba4 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -659,6 +659,7 @@ W32KAPI int WINAPI NtUserGetMouseMovePointsEx( UINT size, MOUSEMOVEPOINT *pt W32KAPI BOOL WINAPI NtUserGetObjectInformation( HANDLE handle, INT index, void *info, DWORD len, DWORD *needed ); W32KAPI HWND WINAPI NtUserGetOpenClipboardWindow(void); +W32KAPI BOOL WINAPI NtUserGetPointerDeviceRects( HANDLE device, RECT *pointer_display_rect, RECT *display_rect ); W32KAPI BOOL WINAPI NtUserGetPointerInfoList( UINT32 id, POINTER_INPUT_TYPE type, UINT_PTR, UINT_PTR, SIZE_T size, UINT32 *entry_count, UINT32 *pointer_count, void *pointer_info ); W32KAPI INT WINAPI NtUserGetPriorityClipboardFormat( UINT *list, INT count ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5155
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=143401 Your paranoid android. === debian11 (build log) === /usr/bin/i686-w64-mingw32-ld: tmp6614a5a3/win32u-00000000.spec.o:fake:(.edata+0xf50): undefined reference to `NtUserGetPointerDeviceRects(a)12' collect2: error: ld returned 1 exit status Task: The win32 Wine build failed === debian11b (build log) === /usr/bin/x86_64-w64-mingw32-ld: tmp66171aef/win32u-00000000.spec.o:fake:(.edata+0xf4c): undefined reference to `NtUserGetPointerDeviceRects' collect2: error: ld returned 1 exit status Task: The wow64 Wine build failed
build failed for unrelated reasons (not including the files that were modified by ./tools/make_specfiles) -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5155#note_62588
This merge request was closed by Etaash Mathamsetty. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5155
participants (3)
-
Etaash Mathamsetty -
Etaash Mathamsetty (@etaash.mathamsetty) -
Marvin