Module: wine Branch: master Commit: a25148ae46b15b3644b57828739e230b08f920e6 URL: https://source.winehq.org/git/wine.git/?a=commit;h=a25148ae46b15b3644b578287...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Dec 3 12:55:44 2021 +0100
win32u: Move NtUserGetCursor implementation from user32.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/user32/cursoricon.c | 19 +------------------ dlls/user32/user32.spec | 2 +- dlls/win32u/cursoricon.c | 18 ++++++++++++++++++ dlls/win32u/syscall.c | 1 + dlls/win32u/win32u.spec | 2 +- dlls/wow64win/syscall.h | 1 + dlls/wow64win/user.c | 5 +++++ include/ntuser.h | 1 + 8 files changed, 29 insertions(+), 20 deletions(-)
diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c index eb033e72005..ba5c5d8904c 100644 --- a/dlls/user32/cursoricon.c +++ b/dlls/user32/cursoricon.c @@ -1873,7 +1873,7 @@ BOOL WINAPI DestroyIcon( HICON hIcon ) { BOOL shared = (obj->rsrc != NULL); release_user_handle_ptr( obj ); - ret = (GetCursor() != hIcon); + ret = (NtUserGetCursor() != hIcon); if (!shared) free_icon_handle( hIcon ); } return ret; @@ -1933,23 +1933,6 @@ HCURSOR WINAPI DECLSPEC_HOTPATCH SetCursor( HCURSOR hCursor /* [in] Handle of cu return hOldCursor; }
-/*********************************************************************** - * GetCursor (USER32.@) - */ -HCURSOR WINAPI GetCursor(void) -{ - HCURSOR ret; - - SERVER_START_REQ( set_cursor ) - { - req->flags = 0; - wine_server_call( req ); - ret = wine_server_ptr_handle( reply->prev_handle ); - } - SERVER_END_REQ; - return ret; -} -
/*********************************************************************** * ClipCursor (USER32.@) diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index a89bcdc8c56..8b8dcb611f9 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -282,7 +282,7 @@ @ stdcall GetClipboardViewer() NtUserGetClipboardViewer @ stdcall GetComboBoxInfo(long ptr) @ stdcall GetCurrentInputMessageSource(ptr) -@ stdcall GetCursor() +@ stdcall GetCursor() NtUserGetCursor @ stdcall GetCursorFrameInfo(long long long ptr ptr) @ stdcall GetCursorInfo(ptr) @ stdcall GetCursorPos(ptr) diff --git a/dlls/win32u/cursoricon.c b/dlls/win32u/cursoricon.c index 8d297e838c9..ad7e51b507e 100644 --- a/dlls/win32u/cursoricon.c +++ b/dlls/win32u/cursoricon.c @@ -61,3 +61,21 @@ INT WINAPI NtUserShowCursor( BOOL show )
return count; } + + +/*********************************************************************** + * NtUserGetCursor (win32u.@) + */ +HCURSOR WINAPI NtUserGetCursor(void) +{ + HCURSOR ret; + + SERVER_START_REQ( set_cursor ) + { + req->flags = 0; + wine_server_call( req ); + ret = wine_server_ptr_handle( reply->prev_handle ); + } + SERVER_END_REQ; + return ret; +} diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c index e07fdcc6953..c8f08e3c2a6 100644 --- a/dlls/win32u/syscall.c +++ b/dlls/win32u/syscall.c @@ -111,6 +111,7 @@ static void * const syscalls[] = NtUserGetClipboardOwner, NtUserGetClipboardSequenceNumber, NtUserGetClipboardViewer, + NtUserGetCursor, NtUserGetKeyState, NtUserGetKeyboardLayout, NtUserGetKeyboardState, diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 95bddc09e5a..7d3421efbcc 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -912,7 +912,7 @@ @ stub NtUserGetControlColor @ stub NtUserGetCurrentDpiInfoForWindow @ stub NtUserGetCurrentInputMessageSource -@ stub NtUserGetCursor +@ stdcall -syscall NtUserGetCursor() @ stub NtUserGetCursorFrameInfo @ stub NtUserGetCursorInfo @ stub NtUserGetDC diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h index 2ffe10b733c..7a148935444 100644 --- a/dlls/wow64win/syscall.h +++ b/dlls/wow64win/syscall.h @@ -98,6 +98,7 @@ SYSCALL_ENTRY( NtUserGetClipboardOwner ) \ SYSCALL_ENTRY( NtUserGetClipboardSequenceNumber ) \ SYSCALL_ENTRY( NtUserGetClipboardViewer ) \ + SYSCALL_ENTRY( NtUserGetCursor ) \ SYSCALL_ENTRY( NtUserGetKeyState ) \ SYSCALL_ENTRY( NtUserGetKeyboardLayout ) \ SYSCALL_ENTRY( NtUserGetKeyboardState ) \ diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index da94ea02dc0..eea3879b9b5 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -234,6 +234,11 @@ NTSTATUS WINAPI wow64_NtUserRemoveClipboardFormatListener( UINT *args ) return NtUserRemoveClipboardFormatListener( hwnd ); }
+NTSTATUS WINAPI wow64_NtUserGetCursor( UINT *args ) +{ + return HandleToUlong( NtUserGetCursor() ); +} + NTSTATUS WINAPI wow64_NtUserAttachThreadInput( UINT *args ) { DWORD from = get_ulong( &args ); diff --git a/include/ntuser.h b/include/ntuser.h index ec0ccc0c2c5..e962c5b3fa2 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -98,6 +98,7 @@ INT WINAPI NtUserGetClipboardFormatName( UINT format, WCHAR *buffer, INT max HWND WINAPI NtUserGetClipboardOwner(void); DWORD WINAPI NtUserGetClipboardSequenceNumber(void); HWND WINAPI NtUserGetClipboardViewer(void); +HCURSOR WINAPI NtUserGetCursor(void); LONG WINAPI NtUserGetDisplayConfigBufferSizes( UINT32 flags, UINT32 *num_path_info, UINT32 *num_mode_info ); INT WINAPI NtUserGetKeyNameText( LONG lparam, WCHAR *buffer, INT size );