From b1ffc6ca74e40d9d0f6e258572b5177cb469d249 Mon Sep 17 00:00:00 2001 From: Jacek Caban <jacek@codeweavers.com> Date: Fri, 22 Jul 2022 13:05:00 +0200 Subject: [PATCH] win32u: Use syscall interface for clipboard functions. --- dlls/win32u/gdiobj.c | 11 ---- dlls/win32u/syscall.c | 11 ++++ dlls/win32u/win32u.spec | 22 +++---- dlls/win32u/win32u_private.h | 12 ---- dlls/win32u/wrappers.c | 67 --------------------- dlls/wow64win/syscall.h | 11 ++++ dlls/wow64win/user.c | 109 +++++++++++++++++++++++++++++++++++ 7 files changed, 142 insertions(+), 101 deletions(-) diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c index f6e918721a4..aeb043b33d1 100644 --- a/dlls/win32u/gdiobj.c +++ b/dlls/win32u/gdiobj.c @@ -1136,11 +1136,8 @@ static struct unix_funcs unix_funcs = NtGdiUnrealizeObject, NtGdiUpdateColors, NtGdiWidenPath, - NtUserChangeClipboardChain, NtUserChangeDisplaySettings, NtUserClipCursor, - NtUserCloseClipboard, - NtUserCountClipboardFormats, NtUserCreateCaret, NtUserCreateWindowEx, NtUserDeferWindowPosAndBand, @@ -1152,7 +1149,6 @@ static struct unix_funcs unix_funcs = NtUserDrawCaptionTemp, NtUserDrawIconEx, NtUserDrawMenuBarTemp, - NtUserEmptyClipboard, NtUserEnableMenuItem, NtUserEnableScrollBar, NtUserEndDeferWindowPosEx, @@ -1163,32 +1159,25 @@ static struct unix_funcs unix_funcs = NtUserExcludeUpdateRgn, NtUserFlashWindowEx, NtUserGetClassInfoEx, - NtUserGetClipboardData, NtUserGetDisplayConfigBufferSizes, NtUserGetIconInfo, NtUserGetMenuBarInfo, - NtUserGetPriorityClipboardFormat, NtUserGetScrollBarInfo, NtUserGetSystemMenu, - NtUserGetUpdatedClipboardFormats, NtUserGetWindowPlacement, NtUserHideCaret, NtUserHiliteMenuItem, NtUserInternalGetWindowIcon, - NtUserIsClipboardFormatAvailable, NtUserMoveWindow, - NtUserOpenClipboard, NtUserRegisterClassExWOW, NtUserReleaseDC, NtUserScrollDC, NtUserSelectPalette, NtUserSetActiveWindow, NtUserSetCapture, - NtUserSetClipboardData, NtUserSetClassLong, NtUserSetClassLongPtr, NtUserSetClassWord, - NtUserSetClipboardViewer, NtUserSetCursor, NtUserSetCursorIconData, NtUserSetFocus, diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c index ffe1703e1e7..3a4fc085ac6 100644 --- a/dlls/win32u/syscall.c +++ b/dlls/win32u/syscall.c @@ -113,11 +113,14 @@ static void * const syscalls[] = NtUserCallNoParam, NtUserCallOneParam, NtUserCallTwoParam, + NtUserChangeClipboardChain, NtUserCheckMenuItem, NtUserChildWindowFromPointEx, + NtUserCloseClipboard, NtUserCloseDesktop, NtUserCloseWindowStation, NtUserCopyAcceleratorTable, + NtUserCountClipboardFormats, NtUserCreateAcceleratorTable, NtUserCreateDesktopEx, NtUserCreateInputContext, @@ -126,6 +129,7 @@ static void * const syscalls[] = NtUserDestroyAcceleratorTable, NtUserDestroyInputContext, NtUserDispatchMessage, + NtUserEmptyClipboard, NtUserEndMenu, NtUserFindExistingCursorIcon, NtUserFindWindowEx, @@ -135,6 +139,7 @@ static void * const syscalls[] = NtUserGetCaretBlinkTime, NtUserGetCaretPos, NtUserGetClassName, + NtUserGetClipboardData, NtUserGetClipboardFormatName, NtUserGetClipboardOwner, NtUserGetClipboardSequenceNumber, @@ -160,6 +165,7 @@ static void * const syscalls[] = NtUserGetMouseMovePointsEx, NtUserGetObjectInformation, NtUserGetOpenClipboardWindow, + NtUserGetPriorityClipboardFormat, NtUserGetProcessDpiAwarenessContext, NtUserGetProcessWindowStation, NtUserGetProp, @@ -174,11 +180,13 @@ static void * const syscalls[] = NtUserGetTitleBarInfo, NtUserGetUpdateRect, NtUserGetUpdateRgn, + NtUserGetUpdatedClipboardFormats, NtUserGetWindowRgnEx, NtUserInitializeClientPfnArrays, NtUserInternalGetWindowText, NtUserInvalidateRect, NtUserInvalidateRgn, + NtUserIsClipboardFormatAvailable, NtUserKillTimer, NtUserLockWindowUpdate, NtUserMapVirtualKeyEx, @@ -186,6 +194,7 @@ static void * const syscalls[] = NtUserMessageCall, NtUserMsgWaitForMultipleObjectsEx, NtUserNotifyWinEvent, + NtUserOpenClipboard, NtUserOpenDesktop, NtUserOpenInputDesktop, NtUserOpenWindowStation, @@ -201,6 +210,8 @@ static void * const syscalls[] = NtUserRemoveProp, NtUserScrollWindowEx, NtUserSendInput, + NtUserSetClipboardData, + NtUserSetClipboardViewer, NtUserSetCursorPos, NtUserSetKeyboardState, NtUserSetMenuContextHelpId, diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index d12b904d3bb..3db0092e8a9 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -782,7 +782,7 @@ @ stdcall -syscall NtUserCallOneParam(long long) @ stdcall -syscall NtUserCallTwoParam(long long long) @ stub NtUserCanBrokerForceForeground -@ stdcall NtUserChangeClipboardChain(long long) +@ stdcall -syscall NtUserChangeClipboardChain(long long) @ stdcall NtUserChangeDisplaySettings(ptr ptr long long ptr) @ stub NtUserChangeWindowMessageFilterEx @ stub NtUserCheckAccessForIntegrityLevel @@ -793,7 +793,7 @@ @ stdcall -syscall NtUserChildWindowFromPointEx(long long long long) @ stub NtUserClearForeground @ stdcall NtUserClipCursor(ptr) -@ stdcall NtUserCloseClipboard() +@ stdcall -syscall NtUserCloseClipboard() @ stdcall -syscall NtUserCloseDesktop(long) @ stdcall -syscall NtUserCloseWindowStation(long) @ stub NtUserCompositionInputSinkLuidFromPoint @@ -803,7 +803,7 @@ @ stub NtUserConsoleControl @ stub NtUserConvertMemHandle @ stdcall -syscall NtUserCopyAcceleratorTable(long ptr long) -@ stdcall NtUserCountClipboardFormats() +@ stdcall -syscall NtUserCountClipboardFormats() @ stdcall -syscall NtUserCreateAcceleratorTable(ptr long) @ stub NtUserCreateActivationGroup @ stub NtUserCreateActivationObject @@ -857,7 +857,7 @@ @ stub NtUserDwmKernelShutdown @ stub NtUserDwmKernelStartup @ stub NtUserDwmValidateWindow -@ stdcall NtUserEmptyClipboard() +@ stdcall -syscall NtUserEmptyClipboard() @ stub NtUserEnableChildWindowDpiMessage @ stub NtUserEnableIAMAccess @ stdcall NtUserEnableMenuItem(long long long) @@ -902,7 +902,7 @@ @ stdcall -syscall NtUserGetClassName(long long ptr) @ stub NtUserGetClipCursor @ stub NtUserGetClipboardAccessToken -@ stdcall NtUserGetClipboardData(long ptr) +@ stdcall -syscall NtUserGetClipboardData(long ptr) @ stdcall -syscall NtUserGetClipboardFormatName(long ptr long) @ stdcall -syscall NtUserGetClipboardOwner() @ stdcall -syscall NtUserGetClipboardSequenceNumber() @@ -976,7 +976,7 @@ @ stub NtUserGetPointerProprietaryId @ stub NtUserGetPointerType @ stub NtUserGetPrecisionTouchPadConfiguration -@ stdcall NtUserGetPriorityClipboardFormat(ptr long) +@ stdcall -syscall NtUserGetPriorityClipboardFormat(ptr long) @ stdcall -syscall NtUserGetProcessDpiAwarenessContext(long) @ stub NtUserGetProcessUIContextInformation @ stdcall -syscall NtUserGetProcessWindowStation() @@ -1004,7 +1004,7 @@ @ stub NtUserGetUniformSpaceMapping @ stdcall -syscall NtUserGetUpdateRect(long ptr long) @ stdcall -syscall NtUserGetUpdateRgn(long long long) -@ stdcall NtUserGetUpdatedClipboardFormats(ptr long ptr) +@ stdcall -syscall NtUserGetUpdatedClipboardFormats(ptr long ptr) @ stub NtUserGetWOWClass @ stub NtUserGetWindowBand @ stub NtUserGetWindowCompositionAttribute @@ -1050,7 +1050,7 @@ @ stdcall -syscall NtUserInvalidateRect(long ptr long) @ stdcall -syscall NtUserInvalidateRgn(long long long) @ stub NtUserIsChildWindowDpiMessageEnabled -@ stdcall NtUserIsClipboardFormatAvailable(long) +@ stdcall -syscall NtUserIsClipboardFormatAvailable(long) @ stub NtUserIsMouseInPointerEnabled @ stub NtUserIsMouseInputEnabled @ stub NtUserIsNonClientDpiScalingEnabled @@ -1090,7 +1090,7 @@ @ stub NtUserNotifyIMEStatus @ stub NtUserNotifyProcessCreate @ stdcall -syscall NtUserNotifyWinEvent(long long long long) -@ stdcall NtUserOpenClipboard(long long) +@ stdcall -syscall NtUserOpenClipboard(long long) @ stdcall -syscall NtUserOpenDesktop(ptr long long) @ stdcall -syscall NtUserOpenInputDesktop(long long long) @ stub NtUserOpenThreadDesktop @@ -1174,8 +1174,8 @@ @ stdcall NtUserSetClassLong(long long long long) @ stdcall NtUserSetClassLongPtr(long long long long) @ stdcall NtUserSetClassWord(long long long) -@ stdcall NtUserSetClipboardData(long ptr ptr) -@ stdcall NtUserSetClipboardViewer(long) +@ stdcall -syscall NtUserSetClipboardData(long ptr ptr) +@ stdcall -syscall NtUserSetClipboardViewer(long) @ stub NtUserSetCoreWindow @ stub NtUserSetCoreWindowPartner @ stdcall NtUserSetCursor(long) diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 4fa0b0e3493..5351f98022b 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -186,12 +186,9 @@ struct unix_funcs BOOL (WINAPI *pNtGdiUnrealizeObject)( HGDIOBJ obj ); BOOL (WINAPI *pNtGdiUpdateColors)( HDC hdc ); BOOL (WINAPI *pNtGdiWidenPath)( HDC hdc ); - BOOL (WINAPI *pNtUserChangeClipboardChain)( HWND hwnd, HWND next ); LONG (WINAPI *pNtUserChangeDisplaySettings)( UNICODE_STRING *devname, DEVMODEW *devmode, HWND hwnd, DWORD flags, void *lparam ); BOOL (WINAPI *pNtUserClipCursor)( const RECT *rect ); - BOOL (WINAPI *pNtUserCloseClipboard)(void); - INT (WINAPI *pNtUserCountClipboardFormats)(void); 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, @@ -211,7 +208,6 @@ struct unix_funcs 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 *pNtUserEmptyClipboard)(void); BOOL (WINAPI *pNtUserEnableMenuItem)( HMENU handle, UINT id, UINT flags ); BOOL (WINAPI *pNtUserEnableScrollBar)( HWND hwnd, UINT bar, UINT flags ); BOOL (WINAPI *pNtUserEndDeferWindowPosEx)( HDWP hdwp, BOOL async ); @@ -225,23 +221,18 @@ 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 ); - HANDLE (WINAPI *pNtUserGetClipboardData)( UINT format, struct get_clipboard_params *params ); LONG (WINAPI *pNtUserGetDisplayConfigBufferSizes)( UINT32 flags, UINT32 *num_path_info, UINT32 *num_mode_info ); 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 ); - INT (WINAPI *pNtUserGetPriorityClipboardFormat)( UINT *list, INT count ); BOOL (WINAPI *pNtUserGetScrollBarInfo)( HWND hwnd, LONG id, SCROLLBARINFO *info ); HMENU (WINAPI *pNtUserGetSystemMenu)( HWND hwnd, BOOL revert ); - BOOL (WINAPI *pNtUserGetUpdatedClipboardFormats)( UINT *formats, UINT size, UINT *out_size ); BOOL (WINAPI *pNtUserGetWindowPlacement)( HWND hwnd, WINDOWPLACEMENT *placement ); BOOL (WINAPI *pNtUserHideCaret)( HWND hwnd ); BOOL (WINAPI *pNtUserHiliteMenuItem)( HWND hwnd, HMENU handle, UINT item, UINT hilite ); HICON (WINAPI *pNtUserInternalGetWindowIcon)( HWND hwnd, UINT type ); - BOOL (WINAPI *pNtUserIsClipboardFormatAvailable)( UINT format ); BOOL (WINAPI *pNtUserMoveWindow)( HWND hwnd, INT x, INT y, INT cx, INT cy, BOOL repaint ); - BOOL (WINAPI *pNtUserOpenClipboard)( HWND hwnd, ULONG unk ); ATOM (WINAPI *pNtUserRegisterClassExWOW)( const WNDCLASSEXW *wc, UNICODE_STRING *name, UNICODE_STRING *version, struct client_menu_name *client_menu_name, @@ -252,12 +243,9 @@ struct unix_funcs HPALETTE (WINAPI *pNtUserSelectPalette)( HDC hdc, HPALETTE hpal, WORD bkg ); HWND (WINAPI *pNtUserSetActiveWindow)( HWND hwnd ); HWND (WINAPI *pNtUserSetCapture)( HWND hwnd ); - NTSTATUS (WINAPI *pNtUserSetClipboardData)( UINT format, HANDLE handle, - struct set_clipboard_params *params ); 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 ); - HWND (WINAPI *pNtUserSetClipboardViewer)( HWND hwnd ); HCURSOR (WINAPI *pNtUserSetCursor)( HCURSOR cursor ); BOOL (WINAPI *pNtUserSetCursorIconData)( HCURSOR cursor, UNICODE_STRING *module, UNICODE_STRING *res_name, struct cursoricon_desc *desc ); diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c index c9cf89f5fe7..678cc6af6ef 100644 --- a/dlls/win32u/wrappers.c +++ b/dlls/win32u/wrappers.c @@ -725,18 +725,6 @@ NTSTATUS WINAPI NtGdiDdDDISetVidPnSourceOwner( const D3DKMT_SETVIDPNSOURCEOWNER return unix_funcs->pNtGdiDdDDISetVidPnSourceOwner( desc ); } -BOOL WINAPI NtUserCloseClipboard(void) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserCloseClipboard(); -} - -BOOL WINAPI NtUserChangeClipboardChain( HWND hwnd, HWND next ) -{ - if (!unix_funcs) return DISP_CHANGE_FAILED; - return unix_funcs->pNtUserChangeClipboardChain( hwnd, next ); -} - LONG WINAPI NtUserChangeDisplaySettings( UNICODE_STRING *devname, DEVMODEW *devmode, HWND hwnd, DWORD flags, void *lparam ) { @@ -750,12 +738,6 @@ BOOL WINAPI NtUserClipCursor( const RECT *rect ) return unix_funcs->pNtUserClipCursor( rect ); } -INT WINAPI NtUserCountClipboardFormats(void) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserCountClipboardFormats(); -} - BOOL WINAPI NtUserCreateCaret( HWND hwnd, HBITMAP bitmap, int width, int height ) { if (!unix_funcs) return 0; @@ -851,12 +833,6 @@ BOOL WINAPI NtUserEndDeferWindowPosEx( HDWP hdwp, BOOL async ) return unix_funcs->pNtUserEndDeferWindowPosEx( hdwp, async ); } -BOOL WINAPI NtUserEmptyClipboard(void) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserEmptyClipboard(); -} - NTSTATUS WINAPI NtUserEnumDisplayDevices( UNICODE_STRING *device, DWORD index, DISPLAY_DEVICEW *info, DWORD flags ) { @@ -896,12 +872,6 @@ ATOM WINAPI NtUserGetClassInfoEx( HINSTANCE instance, UNICODE_STRING *name, WNDC return unix_funcs->pNtUserGetClassInfoEx( instance, name, wc, menu_name, ansi ); } -HANDLE WINAPI NtUserGetClipboardData( UINT format, struct get_clipboard_params *params ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserGetClipboardData( format, params ); -} - LONG WINAPI NtUserGetDisplayConfigBufferSizes( UINT32 flags, UINT32 *num_path_info, UINT32 *num_mode_info ) { @@ -946,25 +916,12 @@ BOOL WINAPI NtUserMoveWindow( HWND hwnd, INT x, INT y, INT cx, INT cy, BOOL repa return unix_funcs->pNtUserMoveWindow( hwnd, x, y, cx, cy, repaint ); } -INT WINAPI NtUserGetPriorityClipboardFormat( UINT *list, INT count ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserGetPriorityClipboardFormat( list, count ); -} - BOOL WINAPI NtUserGetScrollBarInfo( HWND hwnd, LONG id, SCROLLBARINFO *info ) { if (!unix_funcs) return FALSE; return unix_funcs->pNtUserGetScrollBarInfo( hwnd, id, info ); } -BOOL WINAPI NtUserGetUpdatedClipboardFormats( UINT *formats, UINT size, UINT *out_size ) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserGetUpdatedClipboardFormats( formats, size, out_size ); -} - - BOOL WINAPI NtUserGetWindowPlacement( HWND hwnd, WINDOWPLACEMENT *placement ) { if (!unix_funcs) return FALSE; @@ -977,18 +934,6 @@ HICON WINAPI NtUserInternalGetWindowIcon( HWND hwnd, UINT type ) return unix_funcs->pNtUserInternalGetWindowIcon( hwnd, type ); } -BOOL WINAPI NtUserIsClipboardFormatAvailable( UINT format ) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserIsClipboardFormatAvailable( format ); -} - -BOOL WINAPI NtUserOpenClipboard( HWND hwnd, ULONG unk ) -{ - if (!unix_funcs) return FALSE; - return unix_funcs->pNtUserOpenClipboard( hwnd, unk ); -} - ATOM WINAPI NtUserRegisterClassExWOW( const WNDCLASSEXW *wc, UNICODE_STRING *name, UNICODE_STRING *version, struct client_menu_name *client_menu_name, DWORD fnid, DWORD flags, DWORD *wow ) @@ -1028,12 +973,6 @@ HWND WINAPI NtUserSetCapture( HWND hwnd ) return unix_funcs->pNtUserSetCapture( hwnd ); } -NTSTATUS WINAPI NtUserSetClipboardData( UINT format, HANDLE handle, struct set_clipboard_params *params ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserSetClipboardData( format, handle, params ); -} - HCURSOR WINAPI NtUserSetCursor( HCURSOR cursor ) { if (!unix_funcs) return 0; @@ -1058,12 +997,6 @@ WORD WINAPI NtUserSetClassWord( HWND hwnd, INT offset, WORD newval ) return unix_funcs->pNtUserSetClassWord( hwnd, offset, newval ); } -HWND WINAPI NtUserSetClipboardViewer( HWND hwnd ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserSetClipboardViewer( hwnd ); -} - BOOL WINAPI NtUserSetCursorIconData( HCURSOR cursor, UNICODE_STRING *module, UNICODE_STRING *res_name, struct cursoricon_desc *desc ) { diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h index 8ff061ec7f8..82849ccd466 100644 --- a/dlls/wow64win/syscall.h +++ b/dlls/wow64win/syscall.h @@ -100,11 +100,14 @@ SYSCALL_ENTRY( NtUserCallNoParam ) \ SYSCALL_ENTRY( NtUserCallOneParam ) \ SYSCALL_ENTRY( NtUserCallTwoParam ) \ + SYSCALL_ENTRY( NtUserChangeClipboardChain ) \ SYSCALL_ENTRY( NtUserCheckMenuItem ) \ SYSCALL_ENTRY( NtUserChildWindowFromPointEx ) \ + SYSCALL_ENTRY( NtUserCloseClipboard ) \ SYSCALL_ENTRY( NtUserCloseDesktop ) \ SYSCALL_ENTRY( NtUserCloseWindowStation ) \ SYSCALL_ENTRY( NtUserCopyAcceleratorTable ) \ + SYSCALL_ENTRY( NtUserCountClipboardFormats ) \ SYSCALL_ENTRY( NtUserCreateAcceleratorTable ) \ SYSCALL_ENTRY( NtUserCreateDesktopEx ) \ SYSCALL_ENTRY( NtUserCreateInputContext ) \ @@ -113,6 +116,7 @@ SYSCALL_ENTRY( NtUserDestroyAcceleratorTable ) \ SYSCALL_ENTRY( NtUserDestroyInputContext ) \ SYSCALL_ENTRY( NtUserDispatchMessage ) \ + SYSCALL_ENTRY( NtUserEmptyClipboard ) \ SYSCALL_ENTRY( NtUserEndMenu ) \ SYSCALL_ENTRY( NtUserFindExistingCursorIcon ) \ SYSCALL_ENTRY( NtUserFindWindowEx ) \ @@ -122,6 +126,7 @@ SYSCALL_ENTRY( NtUserGetCaretBlinkTime ) \ SYSCALL_ENTRY( NtUserGetCaretPos ) \ SYSCALL_ENTRY( NtUserGetClassName ) \ + SYSCALL_ENTRY( NtUserGetClipboardData ) \ SYSCALL_ENTRY( NtUserGetClipboardFormatName ) \ SYSCALL_ENTRY( NtUserGetClipboardOwner ) \ SYSCALL_ENTRY( NtUserGetClipboardSequenceNumber ) \ @@ -147,6 +152,7 @@ SYSCALL_ENTRY( NtUserGetMouseMovePointsEx ) \ SYSCALL_ENTRY( NtUserGetObjectInformation ) \ SYSCALL_ENTRY( NtUserGetOpenClipboardWindow ) \ + SYSCALL_ENTRY( NtUserGetPriorityClipboardFormat ) \ SYSCALL_ENTRY( NtUserGetProcessDpiAwarenessContext ) \ SYSCALL_ENTRY( NtUserGetProcessWindowStation ) \ SYSCALL_ENTRY( NtUserGetProp ) \ @@ -161,11 +167,13 @@ SYSCALL_ENTRY( NtUserGetTitleBarInfo ) \ SYSCALL_ENTRY( NtUserGetUpdateRect ) \ SYSCALL_ENTRY( NtUserGetUpdateRgn ) \ + SYSCALL_ENTRY( NtUserGetUpdatedClipboardFormats ) \ SYSCALL_ENTRY( NtUserGetWindowRgnEx ) \ SYSCALL_ENTRY( NtUserInitializeClientPfnArrays ) \ SYSCALL_ENTRY( NtUserInternalGetWindowText ) \ SYSCALL_ENTRY( NtUserInvalidateRect ) \ SYSCALL_ENTRY( NtUserInvalidateRgn ) \ + SYSCALL_ENTRY( NtUserIsClipboardFormatAvailable ) \ SYSCALL_ENTRY( NtUserKillTimer ) \ SYSCALL_ENTRY( NtUserLockWindowUpdate ) \ SYSCALL_ENTRY( NtUserMapVirtualKeyEx ) \ @@ -173,6 +181,7 @@ SYSCALL_ENTRY( NtUserMessageCall ) \ SYSCALL_ENTRY( NtUserMsgWaitForMultipleObjectsEx ) \ SYSCALL_ENTRY( NtUserNotifyWinEvent ) \ + SYSCALL_ENTRY( NtUserOpenClipboard ) \ SYSCALL_ENTRY( NtUserOpenDesktop ) \ SYSCALL_ENTRY( NtUserOpenInputDesktop ) \ SYSCALL_ENTRY( NtUserOpenWindowStation ) \ @@ -188,6 +197,8 @@ SYSCALL_ENTRY( NtUserRemoveProp ) \ SYSCALL_ENTRY( NtUserScrollWindowEx ) \ SYSCALL_ENTRY( NtUserSendInput ) \ + SYSCALL_ENTRY( NtUserSetClipboardData ) \ + SYSCALL_ENTRY( NtUserSetClipboardViewer ) \ SYSCALL_ENTRY( NtUserSetCursorPos ) \ SYSCALL_ENTRY( NtUserSetKeyboardState ) \ SYSCALL_ENTRY( NtUserSetMenuContextHelpId ) \ diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index 68d444a7c83..564f17f720b 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -286,6 +286,14 @@ NTSTATUS WINAPI wow64_NtUserCallTwoParam( UINT *args ) return 0; } +NTSTATUS WINAPI wow64_NtUserChangeClipboardChain( UINT *args ) +{ + HWND hwnd = get_handle( &args ); + HWND next = get_handle( &args ); + + return NtUserChangeClipboardChain( hwnd, next ); +} + NTSTATUS WINAPI wow64_NtUserCheckMenuItem( UINT *args ) { HMENU handle = get_handle( &args ); @@ -305,6 +313,11 @@ NTSTATUS WINAPI wow64_NtUserChildWindowFromPointEx( UINT *args ) return HandleToUlong( NtUserChildWindowFromPointEx( parent, x, y, flags )); } +NTSTATUS WINAPI wow64_NtUserCloseClipboard( UINT *args ) +{ + return NtUserCloseClipboard(); +} + NTSTATUS WINAPI wow64_NtUserCloseDesktop( UINT *args ) { HDESK handle = get_handle( &args ); @@ -328,6 +341,11 @@ NTSTATUS WINAPI wow64_NtUserCopyAcceleratorTable( UINT *args ) return NtUserCopyAcceleratorTable( src, dst, count ); } +NTSTATUS WINAPI wow64_NtUserCountClipboardFormats( UINT *args ) +{ + return NtUserCountClipboardFormats(); +} + NTSTATUS WINAPI wow64_NtUserCreateAcceleratorTable( UINT *args ) { ACCEL *table = get_ptr( &args ); @@ -409,6 +427,11 @@ NTSTATUS WINAPI wow64_NtUserDispatchMessage( UINT *args ) return NtUserDispatchMessage( msg_32to64( &msg, msg32 )); } +NTSTATUS WINAPI wow64_NtUserEmptyClipboard( UINT *args ) +{ + return NtUserEmptyClipboard(); +} + NTSTATUS WINAPI wow64_NtUserEndMenu( UINT *args ) { return NtUserEndMenu(); @@ -493,6 +516,32 @@ NTSTATUS WINAPI wow64_NtUserGetClassName( UINT *args ) return NtUserGetClassName( hwnd, real, unicode_str_32to64( &str, str32 )); } +NTSTATUS WINAPI wow64_NtUserGetClipboardData( UINT *args ) +{ + UINT format = get_ulong( &args ); + struct + { + UINT32 data; + UINT32 size; + UINT32 data_size; + UINT seqno; + BOOL data_only; + } *params32 = get_ptr( &args ); + + struct get_clipboard_params params; + HANDLE ret; + + params.data = UlongToPtr( params32->data ); + params.size = params32->size; + + ret = NtUserGetClipboardData( format, ¶ms ); + + params32->data_size = params.data_size; + params32->seqno = params.seqno; + params32->data_only = params.data_only; + return HandleToUlong( ret ); +} + NTSTATUS WINAPI wow64_NtUserGetClipboardFormatName( UINT *args ) { UINT format = get_ulong( &args ); @@ -740,6 +789,14 @@ NTSTATUS WINAPI wow64_NtUserGetOpenClipboardWindow( UINT *args ) return HandleToUlong( NtUserGetOpenClipboardWindow() ); } +NTSTATUS WINAPI wow64_NtUserGetPriorityClipboardFormat( UINT *args ) +{ + UINT *list = get_ptr( &args ); + INT count = get_ulong( &args ); + + return NtUserGetPriorityClipboardFormat( list, count ); +} + NTSTATUS WINAPI wow64_NtUserGetProcessDpiAwarenessContext( UINT *args ) { HANDLE process = get_handle( &args ); @@ -1006,6 +1063,15 @@ NTSTATUS WINAPI wow64_NtUserGetUpdateRgn( UINT *args ) return NtUserGetUpdateRgn( hwnd, hrgn, erase ); } +NTSTATUS WINAPI wow64_NtUserGetUpdatedClipboardFormats( UINT *args ) +{ + UINT *formats = get_ptr( &args ); + UINT size = get_ulong( &args ); + UINT *out_size = get_ptr( &args ); + + return NtUserGetUpdatedClipboardFormats( formats, size, out_size ); +} + NTSTATUS WINAPI wow64_NtUserGetWindowRgnEx( UINT *args ) { HWND hwnd = get_handle( &args ); @@ -1048,6 +1114,13 @@ NTSTATUS WINAPI wow64_NtUserInvalidateRgn( UINT *args ) return NtUserInvalidateRgn( hwnd, hrgn, erase ); } +NTSTATUS WINAPI wow64_NtUserIsClipboardFormatAvailable( UINT *args ) +{ + UINT format = get_ulong( &args ); + + return NtUserIsClipboardFormatAvailable( format ); +} + NTSTATUS WINAPI wow64_NtUserKillTimer( UINT *args ) { HWND hwnd = get_handle( &args ); @@ -1128,6 +1201,14 @@ NTSTATUS WINAPI wow64_NtUserNotifyWinEvent( UINT *args ) return 0; } +NTSTATUS WINAPI wow64_NtUserOpenClipboard( UINT *args ) +{ + HWND hwnd = get_handle( &args ); + ULONG unk = get_ulong( &args ); + + return NtUserOpenClipboard( hwnd, unk ); +} + NTSTATUS WINAPI wow64_NtUserOpenDesktop( UINT *args ) { OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args ); @@ -1339,6 +1420,34 @@ NTSTATUS WINAPI wow64_NtUserSendInput( UINT *args ) return NtUserSendInput( count, inputs, sizeof(*inputs) ); } +NTSTATUS WINAPI wow64_NtUserSetClipboardData( UINT *args ) +{ + UINT format = get_ulong( &args ); + HANDLE handle = get_handle( &args ); + struct + { + UINT32 data; + UINT32 size; + BOOL cache_only; + UINT seqno; + } *params32 = get_ptr( &args ); + + struct set_clipboard_params params; + params.data = UlongToPtr( params32->data ); + params.size = params32->size; + params.cache_only = params32->cache_only; + params.seqno = params32->seqno; + + return NtUserSetClipboardData( format, handle, ¶ms ); +} + +NTSTATUS WINAPI wow64_NtUserSetClipboardViewer( UINT *args ) +{ + HWND hwnd = get_handle( &args ); + + return HandleToUlong( NtUserSetClipboardViewer( hwnd )); +} + NTSTATUS WINAPI wow64_NtUserSetCursorPos( UINT *args ) { INT x = get_ulong( &args ); -- GitLab