From 9fb76ddd53fef4dc6b1e4a01c8f39aac326e4e22 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 12 Sep 2008 15:43:27 +0200 Subject: [PATCH] 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 deletion(-) diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c index 38e3c1b3691..9588308fdeb 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 baf34753f2b..da635b0ab48 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 a8f771ad14c..3a7f5db7a0f 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; } -- 2.11.4.GIT