From: Jacek Caban jacek@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53020 Signed-off-by: Jacek Caban jacek@codeweavers.com --- dlls/user32/user_main.c | 1 + dlls/win32u/driver.c | 7 +++++-- dlls/win32u/ntuser_private.h | 1 + 3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/user_main.c b/dlls/user32/user_main.c index 9cd9bd60146..e470d2ad688 100644 --- a/dlls/user32/user_main.c +++ b/dlls/user32/user_main.c @@ -162,6 +162,7 @@ static const struct user_callbacks user_funcs = EndMenu, ImmProcessKey, ImmTranslateMessage, + NtWaitForMultipleObjects, free_win_ptr, MENU_GetSysMenu, MENU_IsMenuActive, diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c index b4cea3d42c8..1f538d100ed 100644 --- a/dlls/win32u/driver.c +++ b/dlls/win32u/driver.c @@ -813,8 +813,11 @@ static NTSTATUS nulldrv_MsgWaitForMultipleObjectsEx( DWORD count, const HANDLE * { if (!count && timeout && !timeout->QuadPart) return WAIT_TIMEOUT;
- return NtWaitForMultipleObjects( count, handles, !(flags & MWMO_WAITALL), - !!(flags & MWMO_ALERTABLE), timeout ); + if (!user_callbacks) + return NtWaitForMultipleObjects( count, handles, !(flags & MWMO_WAITALL), + !!(flags & MWMO_ALERTABLE), timeout ); + return user_callbacks->pNtWaitForMultipleObjects( count, handles, !(flags & MWMO_WAITALL), + !!(flags & MWMO_ALERTABLE), timeout ); }
static void nulldrv_ReleaseDC( HWND hwnd, HDC hdc ) diff --git a/dlls/win32u/ntuser_private.h b/dlls/win32u/ntuser_private.h index 931c87a6e1c..e39e3f54169 100644 --- a/dlls/win32u/ntuser_private.h +++ b/dlls/win32u/ntuser_private.h @@ -35,6 +35,7 @@ struct user_callbacks BOOL (WINAPI *pEndMenu)(void); BOOL (WINAPI *pImmProcessKey)(HWND, HKL, UINT, LPARAM, DWORD); BOOL (WINAPI *pImmTranslateMessage)(HWND, UINT, WPARAM, LPARAM); + NTSTATUS (WINAPI *pNtWaitForMultipleObjects)(ULONG,const HANDLE*,BOOLEAN,BOOLEAN,const LARGE_INTEGER*); void (CDECL *free_win_ptr)( struct tagWND *win ); HMENU (CDECL *get_sys_menu)( HWND hwnd, HMENU popup ); HWND (CDECL *is_menu_active)(void);