win32u: Introduce DesktopWindowProc driver entry point.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2022-05-19 14:27:36 +02:00 committed by Alexandre Julliard
parent 336f033273
commit dfeb2d2474
3 changed files with 13 additions and 1 deletions

View File

@ -417,6 +417,10 @@ LRESULT desktop_window_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
}
case WM_NCCALCSIZE:
return 0;
default:
if (msg >= WM_USER && hwnd == get_desktop_window())
return user_driver->pDesktopWindowProc( hwnd, msg, wparam, lparam );
}
return default_window_proc( hwnd, msg, wparam, lparam, FALSE );

View File

@ -721,6 +721,11 @@ static SHORT nulldrv_VkKeyScanEx( WCHAR ch, HKL layout )
return -256; /* use default implementation */
}
static LRESULT nulldrv_DesktopWindowProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
{
return default_window_proc( hwnd, msg, wparam, lparam, FALSE );
}
static void nulldrv_DestroyCursorIcon( HCURSOR cursor )
{
}
@ -1175,6 +1180,7 @@ static const struct user_driver_funcs lazy_load_driver =
/* windowing functions */
loaderdrv_CreateDesktopWindow,
loaderdrv_CreateWindow,
nulldrv_DesktopWindowProc,
nulldrv_DestroyWindow,
loaderdrv_FlashWindowEx,
loaderdrv_GetDC,
@ -1247,6 +1253,7 @@ void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT v
SET_USER_FUNC(UpdateDisplayDevices);
SET_USER_FUNC(CreateDesktopWindow);
SET_USER_FUNC(CreateWindow);
SET_USER_FUNC(DesktopWindowProc);
SET_USER_FUNC(DestroyWindow);
SET_USER_FUNC(FlashWindowEx);
SET_USER_FUNC(GetDC);

View File

@ -168,7 +168,7 @@ struct gdi_dc_funcs
};
/* increment this when you change the DC function table */
#define WINE_GDI_DRIVER_VERSION 78
#define WINE_GDI_DRIVER_VERSION 79
#define GDI_PRIORITY_NULL_DRV 0 /* null driver */
#define GDI_PRIORITY_FONT_DRV 100 /* any font driver */
@ -299,6 +299,7 @@ struct user_driver_funcs
/* windowing functions */
BOOL (*pCreateDesktopWindow)(HWND);
BOOL (*pCreateWindow)(HWND);
LRESULT (*pDesktopWindowProc)(HWND,UINT,WPARAM,LPARAM);
void (*pDestroyWindow)(HWND);
void (*pFlashWindowEx)(FLASHWINFO*);
void (*pGetDC)(HDC,HWND,HWND,const RECT *,const RECT *,DWORD);