Jacek Caban : winemac: Implement DesktopWindowProc driver entry point.

Alexandre Julliard julliard at winehq.org
Fri May 20 15:26:49 CDT 2022


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri May 20 14:09:13 2022 +0200

winemac: Implement DesktopWindowProc driver entry point.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winemac.drv/gdi.c    | 1 +
 dlls/winemac.drv/macdrv.h | 1 +
 dlls/winemac.drv/window.c | 9 ++-------
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/dlls/winemac.drv/gdi.c b/dlls/winemac.drv/gdi.c
index 673dca40270..151bb144da1 100644
--- a/dlls/winemac.drv/gdi.c
+++ b/dlls/winemac.drv/gdi.c
@@ -268,6 +268,7 @@ static const struct user_driver_funcs macdrv_funcs =
     .pClipCursor = macdrv_ClipCursor,
     .pCreateDesktopWindow = macdrv_CreateDesktopWindow,
     .pCreateWindow = macdrv_CreateWindow,
+    .pDesktopWindowProc = macdrv_DesktopWindowProc,
     .pDestroyCursorIcon = macdrv_DestroyCursorIcon,
     .pDestroyWindow = macdrv_DestroyWindow,
     .pEnumDisplaySettingsEx = macdrv_EnumDisplaySettingsEx,
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index 71a8d9f5bd2..79ae074dac6 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -137,6 +137,7 @@ extern BOOL macdrv_SetDeviceGammaRamp(PHYSDEV dev, LPVOID ramp) DECLSPEC_HIDDEN;
 extern BOOL macdrv_ClipCursor(LPCRECT clip) DECLSPEC_HIDDEN;
 extern BOOL macdrv_CreateDesktopWindow(HWND hwnd) DECLSPEC_HIDDEN;
 extern BOOL macdrv_CreateWindow(HWND hwnd) DECLSPEC_HIDDEN;
+extern LRESULT macdrv_DesktopWindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) DECLSPEC_HIDDEN;
 extern void macdrv_DestroyWindow(HWND hwnd) DECLSPEC_HIDDEN;
 extern void macdrv_SetFocus(HWND hwnd) DECLSPEC_HIDDEN;
 extern void macdrv_SetLayeredWindowAttributes(HWND hwnd, COLORREF key, BYTE alpha,
diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c
index 147c979ebde..d5bcce654e8 100644
--- a/dlls/winemac.drv/window.c
+++ b/dlls/winemac.drv/window.c
@@ -1557,11 +1557,9 @@ BOOL macdrv_CreateDesktopWindow(HWND hwnd)
 }
 
 
-static WNDPROC desktop_orig_wndproc;
-
 #define WM_WINE_NOTIFY_ACTIVITY WM_USER
 
-static LRESULT CALLBACK desktop_wndproc_wrapper( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
+LRESULT macdrv_DesktopWindowProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
 {
     switch (msg)
     {
@@ -1580,7 +1578,7 @@ static LRESULT CALLBACK desktop_wndproc_wrapper( HWND hwnd, UINT msg, WPARAM wp,
         break;
     }
     }
-    return desktop_orig_wndproc( hwnd, msg, wp, lp );
+    return NtUserMessageCall(hwnd, msg, wp, lp, 0, NtUserDefWindowProc, FALSE);
 }
 
 /**********************************************************************
@@ -1590,9 +1588,6 @@ BOOL macdrv_CreateWindow(HWND hwnd)
 {
     if (hwnd == GetDesktopWindow())
     {
-        desktop_orig_wndproc = (WNDPROC)SetWindowLongPtrW( GetDesktopWindow(),
-            GWLP_WNDPROC, (LONG_PTR)desktop_wndproc_wrapper );
-
         macdrv_init_clipboard();
     }
     return TRUE;




More information about the wine-cvs mailing list