Alexandre Julliard : user32: Add an entry point for ShowWindow to the driver interface.
Alexandre Julliard
julliard at winehq.org
Thu Jul 31 07:17:47 CDT 2008
Module: wine
Branch: master
Commit: 4c431197ca99557cf23a5fcd59ef88ccc9c5b401
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4c431197ca99557cf23a5fcd59ef88ccc9c5b401
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Jul 30 16:13:28 2008 +0200
user32: Add an entry point for ShowWindow to the driver interface.
---
dlls/user32/driver.c | 13 +++++++++++++
dlls/user32/user_private.h | 1 +
dlls/user32/winpos.c | 2 ++
3 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
index 7daffd9..c4522eb 100644
--- a/dlls/user32/driver.c
+++ b/dlls/user32/driver.c
@@ -119,6 +119,7 @@ static const USER_DRIVER *load_driver(void)
GET_USER_FUNC(SetWindowIcon);
GET_USER_FUNC(SetWindowStyle);
GET_USER_FUNC(SetWindowText);
+ GET_USER_FUNC(ShowWindow);
GET_USER_FUNC(SysCommand);
GET_USER_FUNC(WindowMessage);
GET_USER_FUNC(WindowPosChanging);
@@ -395,6 +396,11 @@ static void nulldrv_SetWindowText( HWND hwnd, LPCWSTR text )
{
}
+static UINT nulldrv_ShowWindow( HWND hwnd, INT cmd, RECT *rect, UINT swp )
+{
+ return swp;
+}
+
static LRESULT nulldrv_SysCommand( HWND hwnd, WPARAM wparam, LPARAM lparam )
{
return -1;
@@ -472,6 +478,7 @@ static USER_DRIVER null_driver =
nulldrv_SetWindowIcon,
nulldrv_SetWindowStyle,
nulldrv_SetWindowText,
+ nulldrv_ShowWindow,
nulldrv_SysCommand,
nulldrv_WindowMessage,
nulldrv_WindowPosChanging,
@@ -726,6 +733,11 @@ static void loaderdrv_SetWindowText( HWND hwnd, LPCWSTR text )
load_driver()->pSetWindowText( hwnd, text );
}
+static UINT loaderdrv_ShowWindow( HWND hwnd, INT cmd, RECT *rect, UINT swp )
+{
+ return load_driver()->pShowWindow( hwnd, cmd, rect, swp );
+}
+
static LRESULT loaderdrv_SysCommand( HWND hwnd, WPARAM wparam, LPARAM lparam )
{
return load_driver()->pSysCommand( hwnd, wparam, lparam );
@@ -807,6 +819,7 @@ static USER_DRIVER lazy_load_driver =
loaderdrv_SetWindowIcon,
loaderdrv_SetWindowStyle,
loaderdrv_SetWindowText,
+ loaderdrv_ShowWindow,
loaderdrv_SysCommand,
loaderdrv_WindowMessage,
loaderdrv_WindowPosChanging,
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
index fc5a16d..909686d 100644
--- a/dlls/user32/user_private.h
+++ b/dlls/user32/user_private.h
@@ -155,6 +155,7 @@ typedef struct tagUSER_DRIVER {
void (*pSetWindowIcon)(HWND,UINT,HICON);
void (*pSetWindowStyle)(HWND,DWORD);
void (*pSetWindowText)(HWND,LPCWSTR);
+ UINT (*pShowWindow)(HWND,INT,RECT*,UINT);
LRESULT (*pSysCommand)(HWND,WPARAM,LPARAM);
LRESULT (*pWindowMessage)(HWND,UINT,WPARAM,LPARAM);
void (*pWindowPosChanging)(HWND,HWND,UINT,const RECT *,const RECT *,RECT *);
diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c
index fed65e9..2bbaab9 100644
--- a/dlls/user32/winpos.c
+++ b/dlls/user32/winpos.c
@@ -1046,6 +1046,8 @@ static BOOL show_window( HWND hwnd, INT cmd )
if (!IsWindow( hwnd )) return wasVisible;
}
+ swp = USER_Driver->pShowWindow( hwnd, cmd, &newPos, swp );
+
parent = GetAncestor( hwnd, GA_PARENT );
if (parent && !IsWindowVisible( parent ) && !(swp & SWP_STATECHANGED))
{
More information about the wine-cvs
mailing list