Jacek Caban : win32u: Use user_callbacks for alertable NtWaitForMultipleObjects calls.
Alexandre Julliard
julliard at winehq.org
Tue May 31 15:58:00 CDT 2022
Module: wine
Branch: master
Commit: 7625e6ba20c70d59d61a73e5c2b2b5243e0e0143
URL: https://source.winehq.org/git/wine.git/?a=commit;h=7625e6ba20c70d59d61a73e5c2b2b5243e0e0143
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue May 31 02:36:03 2022 +0200
win32u: Use user_callbacks for alertable NtWaitForMultipleObjects calls.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53020
Signed-off-by: Jacek Caban <jacek at 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);
More information about the wine-cvs
mailing list