Module: wine Branch: master Commit: 6a768e2882a6315806f157f312563e3285f7cff1 URL: https://source.winehq.org/git/wine.git/?a=commit;h=6a768e2882a6315806f157f31...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Nov 12 12:54:10 2021 +0100
win32u: Move NtUserGetUpdatedClipboardFormats 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/clipboard.c | 29 ----------------------------- dlls/user32/user32.spec | 2 +- dlls/win32u/clipboard.c | 28 ++++++++++++++++++++++++++++ dlls/win32u/gdiobj.c | 1 + dlls/win32u/win32u.spec | 2 +- dlls/win32u/win32u_private.h | 1 + dlls/win32u/wrappers.c | 5 +++++ include/ntuser.h | 1 + 8 files changed, 38 insertions(+), 31 deletions(-)
diff --git a/dlls/user32/clipboard.c b/dlls/user32/clipboard.c index 8b00fcf5c9e..df5b40366c1 100644 --- a/dlls/user32/clipboard.c +++ b/dlls/user32/clipboard.c @@ -901,35 +901,6 @@ UINT WINAPI EnumClipboardFormats( UINT format ) }
-/************************************************************************** - * GetUpdatedClipboardFormats (USER32.@) - */ -BOOL WINAPI GetUpdatedClipboardFormats( UINT *formats, UINT size, UINT *out_size ) -{ - BOOL ret; - - if (!out_size) - { - SetLastError( ERROR_NOACCESS ); - return FALSE; - } - - USER_Driver->pUpdateClipboard(); - - SERVER_START_REQ( get_clipboard_formats ) - { - if (formats) wine_server_set_reply( req, formats, size * sizeof(*formats) ); - ret = !wine_server_call_err( req ); - *out_size = reply->count; - } - SERVER_END_REQ; - - TRACE( "%p %u returning %u formats, ret %u\n", formats, size, *out_size, ret ); - if (!ret && !formats && *out_size) SetLastError( ERROR_NOACCESS ); - return ret; -} - - /************************************************************************** * GetClipboardData (USER32.@) */ diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index c464664e581..f9b6c18848c 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -394,7 +394,7 @@ @ stdcall GetTouchInputInfo(long long ptr long) @ stdcall GetUpdateRect(long ptr long) @ stdcall GetUpdateRgn(long long long) -@ stdcall GetUpdatedClipboardFormats(ptr long ptr) +@ stdcall GetUpdatedClipboardFormats(ptr long ptr) NtUserGetUpdatedClipboardFormats @ stdcall GetUserObjectInformationA (long long ptr long ptr) @ stdcall GetUserObjectInformationW (long long ptr long ptr) NtUserGetObjectInformation @ stdcall GetUserObjectSecurity (long ptr ptr long ptr) diff --git a/dlls/win32u/clipboard.c b/dlls/win32u/clipboard.c index d592e007a6e..cddf3885282 100644 --- a/dlls/win32u/clipboard.c +++ b/dlls/win32u/clipboard.c @@ -116,6 +116,34 @@ BOOL WINAPI NtUserIsClipboardFormatAvailable( UINT format ) return ret; }
+/************************************************************************** + * NtUserGetUpdatedClipboardFormats (win32u.@) + */ +BOOL WINAPI NtUserGetUpdatedClipboardFormats( UINT *formats, UINT size, UINT *out_size ) +{ + BOOL ret; + + if (!out_size) + { + SetLastError( ERROR_NOACCESS ); + return FALSE; + } + + user_driver->pUpdateClipboard(); + + SERVER_START_REQ( get_clipboard_formats ) + { + if (formats) wine_server_set_reply( req, formats, size * sizeof(*formats) ); + ret = !wine_server_call_err( req ); + *out_size = reply->count; + } + SERVER_END_REQ; + + TRACE( "%p %u returning %u formats, ret %u\n", formats, size, *out_size, ret ); + if (!ret && !formats && *out_size) SetLastError( ERROR_NOACCESS ); + return ret; +} + /************************************************************************** * NtUserGetClipboardFormatName (win32u.@) */ diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c index 005bd5af165..f91f8d57059 100644 --- a/dlls/win32u/gdiobj.c +++ b/dlls/win32u/gdiobj.c @@ -1168,6 +1168,7 @@ static struct unix_funcs unix_funcs = NtGdiUpdateColors, NtGdiWidenPath, NtUserCountClipboardFormats, + NtUserGetUpdatedClipboardFormats, NtUserIsClipboardFormatAvailable,
GDIRealizePalette, diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 9c98aa645b9..870a6cda9a1 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -1004,7 +1004,7 @@ @ stub NtUserGetUniformSpaceMapping @ stub NtUserGetUpdateRect @ stub NtUserGetUpdateRgn -@ stub NtUserGetUpdatedClipboardFormats +@ stdcall NtUserGetUpdatedClipboardFormats(ptr long ptr) @ stub NtUserGetWOWClass @ stub NtUserGetWindowBand @ stub NtUserGetWindowCompositionAttribute diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 71a9909cfba..00fec65427f 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -195,6 +195,7 @@ struct unix_funcs BOOL (WINAPI *pNtGdiUpdateColors)( HDC hdc ); BOOL (WINAPI *pNtGdiWidenPath)( HDC hdc ); INT (WINAPI *pNtUserCountClipboardFormats)(void); + BOOL (WINAPI *pNtUserGetUpdatedClipboardFormats)( UINT *formats, UINT size, UINT *out_size ); BOOL (WINAPI *pNtUserIsClipboardFormatAvailable)( UINT format );
/* Wine-specific functions */ diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c index 50f000bdb3c..18949db3e43 100644 --- a/dlls/win32u/wrappers.c +++ b/dlls/win32u/wrappers.c @@ -601,6 +601,11 @@ INT WINAPI NtUserCountClipboardFormats(void) return unix_funcs->pNtUserCountClipboardFormats(); }
+BOOL WINAPI NtUserGetUpdatedClipboardFormats( UINT *formats, UINT size, UINT *out_size ) +{ + return unix_funcs->pNtUserGetUpdatedClipboardFormats( formats, size, out_size ); +} + BOOL WINAPI NtUserIsClipboardFormatAvailable( UINT format ) { return unix_funcs->pNtUserIsClipboardFormatAvailable( format ); diff --git a/include/ntuser.h b/include/ntuser.h index 0fed1368acf..53bbd85b173 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -40,6 +40,7 @@ BOOL WINAPI NtUserGetObjectInformation( HANDLE handle, INT index, void *info, HWINSTA WINAPI NtUserGetProcessWindowStation(void); HANDLE WINAPI NtUserGetProp( HWND hwnd, const WCHAR *str ); HDESK WINAPI NtUserGetThreadDesktop( DWORD thread ); +BOOL WINAPI NtUserGetUpdatedClipboardFormats( UINT *formats, UINT size, UINT *out_size ); BOOL WINAPI NtUserIsClipboardFormatAvailable( UINT format ); HWINSTA WINAPI NtUserOpenWindowStation( OBJECT_ATTRIBUTES *attr, ACCESS_MASK access ); BOOL WINAPI NtUserSetObjectInformation( HANDLE handle, INT index, void *info, DWORD len );