From 399dfc2580b2a124d8711b15b6e11fdae49ff910 Mon Sep 17 00:00:00 2001 From: Jacek Caban <jacek@codeweavers.com> Date: Sun, 10 Jul 2022 21:53:49 +0200 Subject: [PATCH] win32u: Use syscall interface for cursor icon functions. --- dlls/win32u/gdiobj.c | 7 --- dlls/win32u/syscall.c | 7 +++ dlls/win32u/win32u.spec | 14 +++--- dlls/win32u/win32u_private.h | 10 ---- dlls/win32u/wrappers.c | 45 ------------------ dlls/wow64win/syscall.h | 7 +++ dlls/wow64win/user.c | 88 ++++++++++++++++++++++++++++++++++++ 7 files changed, 109 insertions(+), 69 deletions(-) diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c index 4ccfd77dfa0..6244e7ab472 100644 --- a/dlls/win32u/gdiobj.c +++ b/dlls/win32u/gdiobj.c @@ -1136,17 +1136,14 @@ static struct unix_funcs unix_funcs = NtGdiUnrealizeObject, NtGdiUpdateColors, NtGdiWidenPath, - NtUserClipCursor, NtUserCreateCaret, NtUserCreateWindowEx, NtUserDeferWindowPosAndBand, - NtUserDestroyCursor, NtUserDestroyMenu, NtUserDestroyWindow, NtUserDisableThreadIme, NtUserDragDetect, NtUserDrawCaptionTemp, - NtUserDrawIconEx, NtUserDrawMenuBarTemp, NtUserEnableMenuItem, NtUserEnableScrollBar, @@ -1155,7 +1152,6 @@ static struct unix_funcs unix_funcs = NtUserExcludeUpdateRgn, NtUserFlashWindowEx, NtUserGetClassInfoEx, - NtUserGetIconInfo, NtUserGetMenuBarInfo, NtUserGetScrollBarInfo, NtUserGetSystemMenu, @@ -1173,8 +1169,6 @@ static struct unix_funcs unix_funcs = NtUserSetClassLong, NtUserSetClassLongPtr, NtUserSetClassWord, - NtUserSetCursor, - NtUserSetCursorIconData, NtUserSetFocus, NtUserSetInternalWindowPos, NtUserSetLayeredWindowAttributes, @@ -1189,7 +1183,6 @@ static struct unix_funcs unix_funcs = NtUserSetWindowRgn, NtUserSetWindowWord, NtUserShowCaret, - NtUserShowCursor, NtUserShowScrollBar, NtUserShowWindow, NtUserShowWindowAsync, diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c index 982a75a0bd9..2bc178db91d 100644 --- a/dlls/win32u/syscall.c +++ b/dlls/win32u/syscall.c @@ -117,6 +117,7 @@ static void * const syscalls[] = NtUserChangeDisplaySettings, NtUserCheckMenuItem, NtUserChildWindowFromPointEx, + NtUserClipCursor, NtUserCloseClipboard, NtUserCloseDesktop, NtUserCloseWindowStation, @@ -128,8 +129,10 @@ static void * const syscalls[] = NtUserCreateWindowStation, NtUserDeleteMenu, NtUserDestroyAcceleratorTable, + NtUserDestroyCursor, NtUserDestroyInputContext, NtUserDispatchMessage, + NtUserDrawIconEx, NtUserEmptyClipboard, NtUserEndMenu, NtUserEnumDisplayDevices, @@ -157,6 +160,7 @@ static void * const syscalls[] = NtUserGetDpiForMonitor, NtUserGetForegroundWindow, NtUserGetGUIThreadInfo, + NtUserGetIconInfo, NtUserGetIconSize, NtUserGetKeyNameText, NtUserGetKeyState, @@ -217,6 +221,8 @@ static void * const syscalls[] = NtUserSendInput, NtUserSetClipboardData, NtUserSetClipboardViewer, + NtUserSetCursor, + NtUserSetCursorIconData, NtUserSetCursorPos, NtUserSetKeyboardState, NtUserSetMenuContextHelpId, @@ -231,6 +237,7 @@ static void * const syscalls[] = NtUserSetTimer, NtUserSetWinEventHook, NtUserSetWindowsHookEx, + NtUserShowCursor, NtUserThunkedMenuInfo, NtUserThunkedMenuItemInfo, NtUserToUnicodeEx, diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index a15e1cadbd3..fb61addd3a8 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -792,7 +792,7 @@ @ stub NtUserCheckWindowThreadDesktop @ stdcall -syscall NtUserChildWindowFromPointEx(long long long long) @ stub NtUserClearForeground -@ stdcall NtUserClipCursor(ptr) +@ stdcall -syscall NtUserClipCursor(ptr) @ stdcall -syscall NtUserCloseClipboard() @ stdcall -syscall NtUserCloseDesktop(long) @ stdcall -syscall NtUserCloseWindowStation(long) @@ -829,7 +829,7 @@ @ stdcall -syscall NtUserDestroyAcceleratorTable(long) @ stub NtUserDestroyActivationGroup @ stub NtUserDestroyActivationObject -@ stdcall NtUserDestroyCursor(long long) +@ stdcall -syscall NtUserDestroyCursor(long long) @ stub NtUserDestroyDCompositionHwndTarget @ stdcall -syscall NtUserDestroyInputContext(long) @ stdcall NtUserDestroyMenu(long) @@ -850,7 +850,7 @@ @ stub NtUserDrawAnimatedRects @ stub NtUserDrawCaption @ stdcall NtUserDrawCaptionTemp(long long ptr long long wstr long) -@ stdcall NtUserDrawIconEx(long long long long long long long long long) +@ stdcall -syscall NtUserDrawIconEx(long long long long long long long long long) @ stdcall NtUserDrawMenuBarTemp(long long ptr long long) @ stub NtUserDwmGetRemoteSessionOcclusionEvent @ stub NtUserDwmGetRemoteSessionOcclusionState @@ -934,7 +934,7 @@ @ stub NtUserGetGuiResources @ stub NtUserGetHDevName @ stub NtUserGetHimetricScaleFactorFromPixelLocation -@ stdcall NtUserGetIconInfo(long ptr ptr ptr ptr long) +@ stdcall -syscall NtUserGetIconInfo(long ptr ptr ptr ptr long) @ stdcall -syscall NtUserGetIconSize(long long ptr ptr) @ stub NtUserGetImeHotKey @ stub NtUserGetImeInfoEx @@ -1178,9 +1178,9 @@ @ stdcall -syscall NtUserSetClipboardViewer(long) @ stub NtUserSetCoreWindow @ stub NtUserSetCoreWindowPartner -@ stdcall NtUserSetCursor(long) +@ stdcall -syscall NtUserSetCursor(long) @ stub NtUserSetCursorContents -@ stdcall NtUserSetCursorIconData(long ptr ptr ptr) +@ stdcall -syscall NtUserSetCursorIconData(long ptr ptr ptr) @ stdcall -syscall NtUserSetCursorPos(long long) @ stub NtUserSetDesktopColorTransform @ stub NtUserSetDesktopVisualInputSink @@ -1258,7 +1258,7 @@ @ stub NtUserSetWindowsHookAW @ stdcall -syscall NtUserSetWindowsHookEx(ptr ptr long long ptr long) @ stdcall NtUserShowCaret(long) -@ stdcall NtUserShowCursor(long) +@ stdcall -syscall NtUserShowCursor(long) @ stdcall NtUserShowScrollBar(long long long) @ stub NtUserShowSystemCursor @ stdcall NtUserShowWindow(long long) diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 50236ea2c63..b96d02e12f4 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -186,7 +186,6 @@ struct unix_funcs BOOL (WINAPI *pNtGdiUnrealizeObject)( HGDIOBJ obj ); BOOL (WINAPI *pNtGdiUpdateColors)( HDC hdc ); BOOL (WINAPI *pNtGdiWidenPath)( HDC hdc ); - BOOL (WINAPI *pNtUserClipCursor)( const RECT *rect ); BOOL (WINAPI *pNtUserCreateCaret)( HWND hwnd, HBITMAP bitmap, int width, int height ); HWND (WINAPI *pNtUserCreateWindowEx)( DWORD ex_style, UNICODE_STRING *class_name, UNICODE_STRING *version, UNICODE_STRING *window_name, @@ -196,15 +195,12 @@ struct unix_funcs HDWP (WINAPI *pNtUserDeferWindowPosAndBand)( HDWP hdwp, HWND hwnd, HWND after, INT x, INT y, INT cx, INT cy, UINT flags, UINT unk1, UINT unk2 ); - BOOL (WINAPI *pNtUserDestroyCursor)( HCURSOR cursor, ULONG arg ); BOOL (WINAPI *pNtUserDestroyMenu)( HMENU handle ); BOOL (WINAPI *pNtUserDestroyWindow)( HWND hwnd ); BOOL (WINAPI *pNtUserDisableThreadIme)( DWORD thread_id ); BOOL (WINAPI *pNtUserDragDetect)( HWND hwnd, int x, int y ); BOOL (WINAPI *pNtUserDrawCaptionTemp)( HWND hwnd, HDC hdc, const RECT *rect, HFONT font, HICON icon, const WCHAR *str, UINT flags ); - BOOL (WINAPI *pNtUserDrawIconEx)( HDC hdc, INT x0, INT y0, HICON icon, INT width, - INT height, UINT istep, HBRUSH hbr, UINT flags ); DWORD (WINAPI *pNtUserDrawMenuBarTemp)( HWND hwnd, HDC hdc, RECT *rect, HMENU handle, HFONT font ); BOOL (WINAPI *pNtUserEnableMenuItem)( HMENU handle, UINT id, UINT flags ); BOOL (WINAPI *pNtUserEnableScrollBar)( HWND hwnd, UINT bar, UINT flags ); @@ -214,8 +210,6 @@ struct unix_funcs BOOL (WINAPI *pNtUserFlashWindowEx)( FLASHWINFO *info ); ATOM (WINAPI *pNtUserGetClassInfoEx)( HINSTANCE instance, UNICODE_STRING *name, WNDCLASSEXW *wc, struct client_menu_name *menu_name, BOOL ansi ); - BOOL (WINAPI *pNtUserGetIconInfo)( HICON icon, ICONINFO *info, UNICODE_STRING *module, - UNICODE_STRING *res_name, DWORD *bpp, LONG unk ); BOOL (WINAPI *pNtUserGetMenuBarInfo)( HWND hwnd, LONG id, LONG item, MENUBARINFO *info ); BOOL (WINAPI *pNtUserGetScrollBarInfo)( HWND hwnd, LONG id, SCROLLBARINFO *info ); HMENU (WINAPI *pNtUserGetSystemMenu)( HWND hwnd, BOOL revert ); @@ -237,9 +231,6 @@ struct unix_funcs DWORD (WINAPI *pNtUserSetClassLong)( HWND hwnd, INT offset, LONG newval, BOOL ansi ); ULONG_PTR (WINAPI *pNtUserSetClassLongPtr)( HWND hwnd, INT offset, LONG_PTR newval, BOOL ansi ); WORD (WINAPI *pNtUserSetClassWord)( HWND hwnd, INT offset, WORD newval ); - HCURSOR (WINAPI *pNtUserSetCursor)( HCURSOR cursor ); - BOOL (WINAPI *pNtUserSetCursorIconData)( HCURSOR cursor, UNICODE_STRING *module, - UNICODE_STRING *res_name, struct cursoricon_desc *desc ); HWND (WINAPI *pNtUserSetFocus)( HWND hwnd ); void (WINAPI *pNtUserSetInternalWindowPos)( HWND hwnd, UINT cmd, RECT *rect, POINT *pt ); BOOL (WINAPI *pNtUserSetLayeredWindowAttributes)( HWND hwnd, COLORREF key, BYTE alpha, DWORD flags ); @@ -254,7 +245,6 @@ struct unix_funcs int (WINAPI *pNtUserSetWindowRgn)( HWND hwnd, HRGN hrgn, BOOL redraw ); WORD (WINAPI *pNtUserSetWindowWord)( HWND hwnd, INT offset, WORD newval ); BOOL (WINAPI *pNtUserShowCaret)( HWND hwnd ); - INT (WINAPI *pNtUserShowCursor)( BOOL show ); BOOL (WINAPI *pNtUserShowScrollBar)( HWND hwnd, INT bar, BOOL show ); BOOL (WINAPI *pNtUserShowWindow)( HWND hwnd, INT cmd ); BOOL (WINAPI *pNtUserShowWindowAsync)( HWND hwnd, INT cmd ); diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c index 5b0e4f19b0f..98f8638c193 100644 --- a/dlls/win32u/wrappers.c +++ b/dlls/win32u/wrappers.c @@ -725,12 +725,6 @@ NTSTATUS WINAPI NtGdiDdDDISetVidPnSourceOwner( const D3DKMT_SETVIDPNSOURCEOWNER return unix_funcs->pNtGdiDdDDISetVidPnSourceOwner( desc ); } -BOOL WINAPI NtUserClipCursor( const RECT *rect ) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserClipCursor( rect ); -} - BOOL WINAPI NtUserCreateCaret( HWND hwnd, HBITMAP bitmap, int width, int height ) { if (!unix_funcs) return 0; @@ -758,12 +752,6 @@ HDWP WINAPI NtUserDeferWindowPosAndBand( HDWP hdwp, HWND hwnd, HWND after, flags, unk1, unk2 ); } -BOOL WINAPI NtUserDestroyCursor( HCURSOR cursor, ULONG arg ) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserDestroyCursor( cursor, arg ); -} - BOOL WINAPI NtUserDestroyMenu( HMENU handle ) { if (!unix_funcs) return FALSE; @@ -795,13 +783,6 @@ BOOL WINAPI NtUserDrawCaptionTemp( HWND hwnd, HDC hdc, const RECT *rect, HFONT f return unix_funcs->pNtUserDrawCaptionTemp( hwnd, hdc, rect, font, icon, str, flags ); } -BOOL WINAPI NtUserDrawIconEx( HDC hdc, INT x0, INT y0, HICON icon, INT width, - INT height, UINT istep, HBRUSH hbr, UINT flags ) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserDrawIconEx( hdc, x0, y0, icon, width, height, istep, hbr, flags ); -} - DWORD WINAPI NtUserDrawMenuBarTemp( HWND hwnd, HDC hdc, RECT *rect, HMENU handle, HFONT font ) { if (!unix_funcs) return 0; @@ -845,13 +826,6 @@ ATOM WINAPI NtUserGetClassInfoEx( HINSTANCE instance, UNICODE_STRING *name, WNDC return unix_funcs->pNtUserGetClassInfoEx( instance, name, wc, menu_name, ansi ); } -BOOL WINAPI NtUserGetIconInfo( HICON icon, ICONINFO *info, UNICODE_STRING *module, - UNICODE_STRING *res_name, DWORD *bpp, LONG unk ) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserGetIconInfo( icon, info, module, res_name, bpp, unk ); -} - BOOL WINAPI NtUserGetMenuBarInfo( HWND hwnd, LONG id, LONG item, MENUBARINFO *info ) { if (!unix_funcs) return 0; @@ -939,12 +913,6 @@ HWND WINAPI NtUserSetCapture( HWND hwnd ) return unix_funcs->pNtUserSetCapture( hwnd ); } -HCURSOR WINAPI NtUserSetCursor( HCURSOR cursor ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserSetCursor( cursor ); -} - DWORD WINAPI NtUserSetClassLong( HWND hwnd, INT offset, LONG newval, BOOL ansi ) { if (!unix_funcs) return 0; @@ -963,13 +931,6 @@ WORD WINAPI NtUserSetClassWord( HWND hwnd, INT offset, WORD newval ) return unix_funcs->pNtUserSetClassWord( hwnd, offset, newval ); } -BOOL WINAPI NtUserSetCursorIconData( HCURSOR cursor, UNICODE_STRING *module, UNICODE_STRING *res_name, - struct cursoricon_desc *desc ) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserSetCursorIconData( cursor, module, res_name, desc ); -} - HWND WINAPI NtUserSetFocus( HWND hwnd ) { if (!unix_funcs) return FALSE; @@ -1054,12 +1015,6 @@ BOOL WINAPI NtUserShowCaret( HWND hwnd ) return unix_funcs->pNtUserShowCaret( hwnd ); } -INT WINAPI NtUserShowCursor( BOOL show ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserShowCursor( show ); -} - BOOL WINAPI NtUserShowScrollBar( HWND hwnd, INT bar, BOOL show ) { if (!unix_funcs) return FALSE; diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h index b5fa4cb9e48..0f6217fee63 100644 --- a/dlls/wow64win/syscall.h +++ b/dlls/wow64win/syscall.h @@ -104,6 +104,7 @@ SYSCALL_ENTRY( NtUserChangeDisplaySettings ) \ SYSCALL_ENTRY( NtUserCheckMenuItem ) \ SYSCALL_ENTRY( NtUserChildWindowFromPointEx ) \ + SYSCALL_ENTRY( NtUserClipCursor ) \ SYSCALL_ENTRY( NtUserCloseClipboard ) \ SYSCALL_ENTRY( NtUserCloseDesktop ) \ SYSCALL_ENTRY( NtUserCloseWindowStation ) \ @@ -115,8 +116,10 @@ SYSCALL_ENTRY( NtUserCreateWindowStation ) \ SYSCALL_ENTRY( NtUserDeleteMenu ) \ SYSCALL_ENTRY( NtUserDestroyAcceleratorTable ) \ + SYSCALL_ENTRY( NtUserDestroyCursor ) \ SYSCALL_ENTRY( NtUserDestroyInputContext ) \ SYSCALL_ENTRY( NtUserDispatchMessage ) \ + SYSCALL_ENTRY( NtUserDrawIconEx ) \ SYSCALL_ENTRY( NtUserEmptyClipboard ) \ SYSCALL_ENTRY( NtUserEndMenu ) \ SYSCALL_ENTRY( NtUserEnumDisplayDevices ) \ @@ -144,6 +147,7 @@ SYSCALL_ENTRY( NtUserGetDpiForMonitor ) \ SYSCALL_ENTRY( NtUserGetForegroundWindow ) \ SYSCALL_ENTRY( NtUserGetGUIThreadInfo ) \ + SYSCALL_ENTRY( NtUserGetIconInfo ) \ SYSCALL_ENTRY( NtUserGetIconSize ) \ SYSCALL_ENTRY( NtUserGetKeyNameText ) \ SYSCALL_ENTRY( NtUserGetKeyState ) \ @@ -204,6 +208,8 @@ SYSCALL_ENTRY( NtUserSendInput ) \ SYSCALL_ENTRY( NtUserSetClipboardData ) \ SYSCALL_ENTRY( NtUserSetClipboardViewer ) \ + SYSCALL_ENTRY( NtUserSetCursor ) \ + SYSCALL_ENTRY( NtUserSetCursorIconData ) \ SYSCALL_ENTRY( NtUserSetCursorPos ) \ SYSCALL_ENTRY( NtUserSetKeyboardState ) \ SYSCALL_ENTRY( NtUserSetMenuContextHelpId ) \ @@ -218,6 +224,7 @@ SYSCALL_ENTRY( NtUserSetTimer ) \ SYSCALL_ENTRY( NtUserSetWinEventHook ) \ SYSCALL_ENTRY( NtUserSetWindowsHookEx ) \ + SYSCALL_ENTRY( NtUserShowCursor ) \ SYSCALL_ENTRY( NtUserThunkedMenuInfo ) \ SYSCALL_ENTRY( NtUserThunkedMenuItemInfo ) \ SYSCALL_ENTRY( NtUserToUnicodeEx ) \ diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index 8b81baa0e58..2eb53272ca4 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -327,6 +327,13 @@ NTSTATUS WINAPI wow64_NtUserChildWindowFromPointEx( UINT *args ) return HandleToUlong( NtUserChildWindowFromPointEx( parent, x, y, flags )); } +NTSTATUS WINAPI wow64_NtUserClipCursor( UINT *args ) +{ + const RECT *rect = get_ptr( &args ); + + return NtUserClipCursor( rect ); +} + NTSTATUS WINAPI wow64_NtUserCloseClipboard( UINT *args ) { return NtUserCloseClipboard(); @@ -426,6 +433,14 @@ NTSTATUS WINAPI wow64_NtUserDestroyAcceleratorTable( UINT *args ) return NtUserDestroyAcceleratorTable( handle ); } +NTSTATUS WINAPI wow64_NtUserDestroyCursor( UINT *args ) +{ + HCURSOR cursor = get_handle( &args ); + ULONG arg = get_ulong( &args ); + + return NtUserDestroyCursor( cursor, arg ); +} + NTSTATUS WINAPI wow64_NtUserDestroyInputContext( UINT *args ) { HIMC handle = get_handle( &args ); @@ -441,6 +456,21 @@ NTSTATUS WINAPI wow64_NtUserDispatchMessage( UINT *args ) return NtUserDispatchMessage( msg_32to64( &msg, msg32 )); } +NTSTATUS WINAPI wow64_NtUserDrawIconEx( UINT *args ) +{ + HDC hdc = get_handle( &args ); + int x0 = get_ulong( &args ); + int y0 = get_ulong( &args ); + HICON icon = get_handle( &args ); + int width = get_ulong( &args ); + int height = get_ulong( &args ); + UINT istep = get_ulong( &args ); + HBRUSH hbr = get_handle( &args ); + UINT flags = get_ulong( &args ); + + return NtUserDrawIconEx( hdc, x0, y0, icon, width, height, istep, hbr, flags ); +} + NTSTATUS WINAPI wow64_NtUserEmptyClipboard( UINT *args ) { return NtUserEmptyClipboard(); @@ -724,6 +754,39 @@ NTSTATUS WINAPI wow64_NtUserGetGUIThreadInfo( UINT *args ) return TRUE; } +NTSTATUS WINAPI wow64_NtUserGetIconInfo( UINT *args ) +{ + HICON icon = get_handle( &args ); + struct + { + BOOL fIcon; + DWORD xHotspot; + DWORD yHotspot; + UINT32 hbmMask; + UINT32 hbmColor; + } *info32 = get_ptr( &args ); + UNICODE_STRING32 *module32 = get_ptr( &args ); + UNICODE_STRING32 *res_name32 = get_ptr( &args ); + DWORD *bpp = get_ptr( &args ); + LONG unk = get_ulong( &args ); + + ICONINFO info; + UNICODE_STRING module, res_name; + + if (!NtUserGetIconInfo( icon, &info, unicode_str_32to64( &module, module32 ), + unicode_str_32to64( &res_name, res_name32 ), bpp, unk )) + return FALSE; + + info32->fIcon = info.fIcon; + info32->xHotspot = info.xHotspot; + info32->yHotspot = info.yHotspot; + info32->hbmMask = HandleToUlong( info.hbmMask ); + info32->hbmColor = HandleToUlong( info.hbmColor ); + if (module32) module32->Length = module.Length; + if (res_name32) res_name32->Length = res_name.Length; + return TRUE; +} + NTSTATUS WINAPI wow64_NtUserGetIconSize( UINT *args ) { HICON handle = get_handle( &args ); @@ -1506,6 +1569,24 @@ NTSTATUS WINAPI wow64_NtUserSetClipboardViewer( UINT *args ) return HandleToUlong( NtUserSetClipboardViewer( hwnd )); } +NTSTATUS WINAPI wow64_NtUserSetCursor( UINT *args ) +{ + HCURSOR cursor = get_handle( &args ); + + return HandleToUlong( NtUserSetCursor( cursor )); +} + +NTSTATUS WINAPI wow64_NtUserSetCursorIconData( UINT *args ) +{ + HCURSOR cursor = get_handle( &args ); + UNICODE_STRING32 *module32 = get_ptr( &args ); + UNICODE_STRING32 *res_name32 = get_ptr( &args ); + void *desc = get_ptr( &args ); + + FIXME( "%p %p %p %p\n", cursor, module32, res_name32, desc ); + return 0; +} + NTSTATUS WINAPI wow64_NtUserSetCursorPos( UINT *args ) { INT x = get_ulong( &args ); @@ -1643,6 +1724,13 @@ NTSTATUS WINAPI wow64_NtUserSetWindowsHookEx( UINT *args ) return HandleToUlong( ret ); } +NTSTATUS WINAPI wow64_NtUserShowCursor( UINT *args ) +{ + BOOL show = get_ulong( &args ); + + return NtUserShowCursor( show ); +} + NTSTATUS WINAPI wow64_NtUserThunkedMenuInfo( UINT *args ) { HMENU menu = get_handle( &args ); -- GitLab