Jacek Caban : win32u: Introduce NtUserClipboardWindowProc.

Alexandre Julliard julliard at winehq.org
Tue May 31 15:58:00 CDT 2022


Module: wine
Branch: master
Commit: 806d85529f34da0ebcf05fe6b7631849372834d8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=806d85529f34da0ebcf05fe6b7631849372834d8

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon May 30 21:43:17 2022 +0200

win32u: Introduce NtUserClipboardWindowProc.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>

---

 dlls/win32u/driver.c      | 7 +++++++
 dlls/win32u/message.c     | 2 ++
 include/ntuser.h          | 5 +++--
 include/wine/gdi_driver.h | 1 +
 4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c
index 4dac0760464..b4cea3d42c8 100644
--- a/dlls/win32u/driver.c
+++ b/dlls/win32u/driver.c
@@ -1099,6 +1099,11 @@ static BOOL loaderdrv_ClipCursor( const RECT *clip )
     return load_driver()->pClipCursor( clip );
 }
 
+static LRESULT nulldrv_ClipboardWindowProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
+{
+    return 0;
+}
+
 static void loaderdrv_UpdateClipboard(void)
 {
     load_driver()->pUpdateClipboard();
@@ -1172,6 +1177,7 @@ static const struct user_driver_funcs lazy_load_driver =
     loaderdrv_SetCursorPos,
     loaderdrv_ClipCursor,
     /* clipboard functions */
+    nulldrv_ClipboardWindowProc,
     loaderdrv_UpdateClipboard,
     /* display modes */
     loaderdrv_ChangeDisplaySettingsEx,
@@ -1247,6 +1253,7 @@ void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT v
     SET_USER_FUNC(GetCursorPos);
     SET_USER_FUNC(SetCursorPos);
     SET_USER_FUNC(ClipCursor);
+    SET_USER_FUNC(ClipboardWindowProc);
     SET_USER_FUNC(UpdateClipboard);
     SET_USER_FUNC(ChangeDisplaySettingsEx);
     SET_USER_FUNC(EnumDisplaySettingsEx);
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c
index 6bb9aa455f5..bc6db20d164 100644
--- a/dlls/win32u/message.c
+++ b/dlls/win32u/message.c
@@ -2911,6 +2911,8 @@ LRESULT WINAPI NtUserMessageCall( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lpa
         return send_notify_message( hwnd, msg, wparam, lparam, ansi );
     case NtUserSendMessageCallback:
         return send_message_callback( hwnd, msg, wparam, lparam, (void *)result_info, ansi );
+    case NtUserClipboardWindowProc:
+        return user_driver->pClipboardWindowProc( hwnd, msg, wparam, lparam );
     case NtUserSpyEnter:
         spy_enter_message( ansi, hwnd, msg, wparam, lparam );
         return 0;
diff --git a/include/ntuser.h b/include/ntuser.h
index 29de027a334..091d34c3a5f 100644
--- a/include/ntuser.h
+++ b/include/ntuser.h
@@ -189,8 +189,9 @@ enum
     NtUserSendNotifyMessage   = 0x02b7,
     NtUserSendMessageCallback = 0x02b8,
     /* Wine-specific exports */
-    NtUserSpyEnter            = 0x0300,
-    NtUserSpyExit             = 0x0301,
+    NtUserClipboardWindowProc = 0x0300,
+    NtUserSpyEnter            = 0x0301,
+    NtUserSpyExit             = 0x0302,
 };
 
 /* NtUserThunkedMenuItemInfo codes */
diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h
index 21fff4d4aa2..52fd6fe49d3 100644
--- a/include/wine/gdi_driver.h
+++ b/include/wine/gdi_driver.h
@@ -291,6 +291,7 @@ struct user_driver_funcs
     BOOL    (*pSetCursorPos)(INT,INT);
     BOOL    (*pClipCursor)(LPCRECT);
     /* clipboard functions */
+    LRESULT (*pClipboardWindowProc)(HWND,UINT,WPARAM,LPARAM);
     void    (*pUpdateClipboard)(void);
     /* display modes */
     LONG    (*pChangeDisplaySettingsEx)(LPCWSTR,LPDEVMODEW,HWND,DWORD,LPVOID);




More information about the wine-cvs mailing list