Jacek Caban : win32u: Move NtUserGetUpdatedClipboardFormats implementation from user32.
Alexandre Julliard
julliard at winehq.org
Mon Nov 15 16:01:27 CST 2021
Module: wine
Branch: master
Commit: 6a768e2882a6315806f157f312563e3285f7cff1
URL: https://source.winehq.org/git/wine.git/?a=commit;h=6a768e2882a6315806f157f312563e3285f7cff1
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Nov 12 12:54:10 2021 +0100
win32u: Move NtUserGetUpdatedClipboardFormats 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/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 );
More information about the wine-cvs
mailing list