Alexandre Julliard : user32: Add a SetLayeredWindowAttributes driver entry point.

Alexandre Julliard julliard at winehq.org
Mon Sep 15 06:53:59 CDT 2008


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Sep 12 15:43:27 2008 +0200

user32: Add a SetLayeredWindowAttributes driver entry point.

---

 dlls/user32/driver.c       |   12 ++++++++++++
 dlls/user32/user_private.h |    1 +
 dlls/user32/win.c          |    4 +++-
 3 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
index 38e3c1b..9588308 100644
--- a/dlls/user32/driver.c
+++ b/dlls/user32/driver.c
@@ -114,6 +114,7 @@ static const USER_DRIVER *load_driver(void)
         GET_USER_FUNC(ScrollDC);
         GET_USER_FUNC(SetCapture);
         GET_USER_FUNC(SetFocus);
+        GET_USER_FUNC(SetLayeredWindowAttributes);
         GET_USER_FUNC(SetParent);
         GET_USER_FUNC(SetWindowRgn);
         GET_USER_FUNC(SetWindowIcon);
@@ -375,6 +376,10 @@ static void nulldrv_SetFocus( HWND hwnd )
 {
 }
 
+static void nulldrv_SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWORD flags )
+{
+}
+
 static void nulldrv_SetParent( HWND hwnd, HWND parent, HWND old_parent )
 {
 }
@@ -473,6 +478,7 @@ static USER_DRIVER null_driver =
     nulldrv_ScrollDC,
     nulldrv_SetCapture,
     nulldrv_SetFocus,
+    nulldrv_SetLayeredWindowAttributes,
     nulldrv_SetParent,
     nulldrv_SetWindowRgn,
     nulldrv_SetWindowIcon,
@@ -708,6 +714,11 @@ static void loaderdrv_SetFocus( HWND hwnd )
     load_driver()->pSetFocus( hwnd );
 }
 
+static void loaderdrv_SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWORD flags )
+{
+    load_driver()->pSetLayeredWindowAttributes( hwnd, key, alpha, flags );
+}
+
 static void loaderdrv_SetParent( HWND hwnd, HWND parent, HWND old_parent )
 {
     load_driver()->pSetParent( hwnd, parent, old_parent );
@@ -814,6 +825,7 @@ static USER_DRIVER lazy_load_driver =
     loaderdrv_ScrollDC,
     loaderdrv_SetCapture,
     loaderdrv_SetFocus,
+    loaderdrv_SetLayeredWindowAttributes,
     loaderdrv_SetParent,
     loaderdrv_SetWindowRgn,
     loaderdrv_SetWindowIcon,
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
index baf3475..da635b0 100644
--- a/dlls/user32/user_private.h
+++ b/dlls/user32/user_private.h
@@ -150,6 +150,7 @@ typedef struct tagUSER_DRIVER {
     BOOL   (*pScrollDC)(HDC, INT, INT, const RECT *, const RECT *, HRGN, LPRECT);
     void   (*pSetCapture)(HWND,UINT);
     void   (*pSetFocus)(HWND);
+    void   (*pSetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD);
     void   (*pSetParent)(HWND,HWND,HWND);
     int    (*pSetWindowRgn)(HWND,HRGN,BOOL);
     void   (*pSetWindowIcon)(HWND,UINT,HICON);
diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index a8f771a..3a7f5db 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -3325,7 +3325,7 @@ BOOL WINAPI SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWO
 {
     BOOL ret;
 
-    FIXME("(%p,%08x,%d,%x): stub!\n", hwnd, key, alpha, flags);
+    TRACE("(%p,%08x,%d,%x): stub!\n", hwnd, key, alpha, flags);
 
     SERVER_START_REQ( set_window_layered_info )
     {
@@ -3337,6 +3337,8 @@ BOOL WINAPI SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha, DWO
     }
     SERVER_END_REQ;
 
+    if (ret) USER_Driver->pSetLayeredWindowAttributes( hwnd, key, alpha, flags );
+
     return ret;
 }
 




More information about the wine-cvs mailing list