Alexandre Julliard : user32: Add a SetCapture function to the driver interface.

Alexandre Julliard julliard at winehq.org
Wed Mar 12 17:23:56 CDT 2008


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Mar 12 14:55:28 2008 +0100

user32: Add a SetCapture function to the driver interface.

---

 dlls/user32/driver.c       |   12 ++++++++++++
 dlls/user32/input.c        |    2 ++
 dlls/user32/user_private.h |    1 +
 3 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
index d773c08..ad950ce 100644
--- a/dlls/user32/driver.c
+++ b/dlls/user32/driver.c
@@ -112,6 +112,7 @@ static const USER_DRIVER *load_driver(void)
         GET_USER_FUNC(MsgWaitForMultipleObjectsEx);
         GET_USER_FUNC(ReleaseDC);
         GET_USER_FUNC(ScrollDC);
+        GET_USER_FUNC(SetCapture);
         GET_USER_FUNC(SetFocus);
         GET_USER_FUNC(SetParent);
         GET_USER_FUNC(SetWindowPos);
@@ -364,6 +365,10 @@ static BOOL nulldrv_ScrollDC( HDC hdc, INT dx, INT dy, const RECT *scroll, const
     return FALSE;
 }
 
+static void nulldrv_SetCapture( HWND hwnd, UINT flags )
+{
+}
+
 static void nulldrv_SetFocus( HWND hwnd )
 {
 }
@@ -452,6 +457,7 @@ static const USER_DRIVER null_driver =
     nulldrv_MsgWaitForMultipleObjectsEx,
     nulldrv_ReleaseDC,
     nulldrv_ScrollDC,
+    nulldrv_SetCapture,
     nulldrv_SetFocus,
     nulldrv_SetParent,
     nulldrv_SetWindowPos,
@@ -676,6 +682,11 @@ static BOOL loaderdrv_ScrollDC( HDC hdc, INT dx, INT dy, const RECT *scroll, con
     return load_driver()->pScrollDC( hdc, dx, dy, scroll, clip, hrgn, update );
 }
 
+static void loaderdrv_SetCapture( HWND hwnd, UINT flags )
+{
+    load_driver()->pSetCapture( hwnd, flags );
+}
+
 static void loaderdrv_SetFocus( HWND hwnd )
 {
     load_driver()->pSetFocus( hwnd );
@@ -772,6 +783,7 @@ static const USER_DRIVER lazy_load_driver =
     loaderdrv_MsgWaitForMultipleObjectsEx,
     loaderdrv_ReleaseDC,
     loaderdrv_ScrollDC,
+    loaderdrv_SetCapture,
     loaderdrv_SetFocus,
     loaderdrv_SetParent,
     loaderdrv_SetWindowPos,
diff --git a/dlls/user32/input.c b/dlls/user32/input.c
index b0fc9c5..8891f59 100644
--- a/dlls/user32/input.c
+++ b/dlls/user32/input.c
@@ -100,6 +100,8 @@ BOOL set_capture_window( HWND hwnd, UINT gui_flags, HWND *prev_ret )
     }
     SERVER_END_REQ;
 
+    USER_Driver->pSetCapture( hwnd, gui_flags );
+
     if (previous && previous != hwnd)
         SendMessageW( previous, WM_CAPTURECHANGED, 0, (LPARAM)hwnd );
 
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
index 1131046..ebca80c 100644
--- a/dlls/user32/user_private.h
+++ b/dlls/user32/user_private.h
@@ -148,6 +148,7 @@ typedef struct tagUSER_DRIVER {
     DWORD  (*pMsgWaitForMultipleObjectsEx)(DWORD,const HANDLE*,DWORD,DWORD,DWORD);
     void   (*pReleaseDC)(HWND,HDC);
     BOOL   (*pScrollDC)(HDC, INT, INT, const RECT *, const RECT *, HRGN, LPRECT);
+    void   (*pSetCapture)(HWND,UINT);
     void   (*pSetFocus)(HWND);
     void   (*pSetParent)(HWND,HWND,HWND);
     void   (*pSetWindowPos)(HWND,HWND,UINT,const RECT *,const RECT *,const RECT *,const RECT *);




More information about the wine-cvs mailing list