Jacek Caban : win32u: Move NtUserGetCursor implementation from user32.
Alexandre Julliard
julliard at winehq.org
Fri Dec 3 15:18:59 CST 2021
Module: wine
Branch: master
Commit: a25148ae46b15b3644b57828739e230b08f920e6
URL: https://source.winehq.org/git/wine.git/?a=commit;h=a25148ae46b15b3644b57828739e230b08f920e6
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Dec 3 12:55:44 2021 +0100
win32u: Move NtUserGetCursor implementation from user32.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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 );
More information about the wine-cvs
mailing list