Module: wine Branch: master Commit: ae7effbd78f63a0a899b7888a9a1aa19959aa85a URL: https://gitlab.winehq.org/wine/wine/-/commit/ae7effbd78f63a0a899b7888a9a1aa1...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Dec 9 12:31:54 2022 +0100
win32u: Move NtUserWaitMessage implementation from user32.
---
dlls/user32/message.c | 13 ------------- dlls/user32/user32.spec | 2 +- dlls/win32u/message.c | 8 ++++++++ dlls/win32u/syscall.c | 1 + dlls/win32u/win32u.spec | 2 +- dlls/wow64win/syscall.h | 1 + dlls/wow64win/user.c | 5 +++++ include/ntuser.h | 1 + 8 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/dlls/user32/message.c b/dlls/user32/message.c index 92096e4a81d..9ad4abd21b5 100644 --- a/dlls/user32/message.c +++ b/dlls/user32/message.c @@ -1026,19 +1026,6 @@ BOOL WINAPI GetCurrentInputMessageSource( INPUT_MESSAGE_SOURCE *source ) }
-/*********************************************************************** - * WaitMessage (USER.112) Suspend thread pending messages - * WaitMessage (USER32.@) Suspend thread pending messages - * - * WaitMessage() suspends a thread until events appear in the thread's - * queue. - */ -BOOL WINAPI WaitMessage(void) -{ - return NtUserMsgWaitForMultipleObjectsEx( 0, NULL, INFINITE, QS_ALLINPUT, 0 ) != WAIT_FAILED; -} - - /*********************************************************************** * MsgWaitForMultipleObjects (USER32.@) */ diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec index a53d02cd064..d9cf610b470 100644 --- a/dlls/user32/user32.spec +++ b/dlls/user32/user32.spec @@ -820,7 +820,7 @@ @ stdcall WINNLSGetIMEHotkey(long) @ stub WNDPROC_CALLBACK @ stdcall WaitForInputIdle(long long) -@ stdcall WaitMessage() +@ stdcall WaitMessage() NtUserWaitMessage # @ stub Win32PoolAllocationStats @ stdcall WinHelpA(long str long long) @ stdcall WinHelpW(long wstr long long) diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c index 8db81a57065..ff417169ad1 100644 --- a/dlls/win32u/message.c +++ b/dlls/win32u/message.c @@ -2256,6 +2256,14 @@ DWORD WINAPI NtUserWaitForInputIdle( HANDLE process, DWORD timeout, BOOL wow ) return WAIT_TIMEOUT; }
+/*********************************************************************** + * NtUserWaitMessage (win32u.@) + */ +BOOL WINAPI NtUserWaitMessage(void) +{ + return NtUserMsgWaitForMultipleObjectsEx( 0, NULL, INFINITE, QS_ALLINPUT, 0 ) != WAIT_FAILED; +} + /*********************************************************************** * NtUserPeekMessage (win32u.@) */ diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c index 6c59c91b5b0..cfe2961c45d 100644 --- a/dlls/win32u/syscall.c +++ b/dlls/win32u/syscall.c @@ -308,6 +308,7 @@ static void * const syscalls[] = NtUserValidateRect, NtUserVkKeyScanEx, NtUserWaitForInputIdle, + NtUserWaitMessage, NtUserWindowFromDC, NtUserWindowFromPoint, }; diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 1ffcfcaef5a..af70ad7d3e5 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -1308,7 +1308,7 @@ @ stdcall -syscall NtUserWaitForInputIdle(long long long) @ stub NtUserWaitForMsgAndEvent @ stub NtUserWaitForRedirectionStartComplete -@ stub NtUserWaitMessage +@ stdcall -syscall NtUserWaitMessage() @ stdcall -syscall NtUserWindowFromDC(long) @ stub NtUserWindowFromPhysicalPoint @ stdcall -syscall NtUserWindowFromPoint(long long) diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h index 24e52a2a476..e84d4dd60c6 100644 --- a/dlls/wow64win/syscall.h +++ b/dlls/wow64win/syscall.h @@ -294,6 +294,7 @@ SYSCALL_ENTRY( NtUserValidateRect ) \ SYSCALL_ENTRY( NtUserVkKeyScanEx ) \ SYSCALL_ENTRY( NtUserWaitForInputIdle ) \ + SYSCALL_ENTRY( NtUserWaitMessage ) \ SYSCALL_ENTRY( NtUserWindowFromDC ) \ SYSCALL_ENTRY( NtUserWindowFromPoint )
diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index c8354e6b04a..0841119c2d6 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -4154,6 +4154,11 @@ NTSTATUS WINAPI wow64_NtUserWaitForInputIdle( UINT *args ) return NtUserWaitForInputIdle( process, timeout, wow ); }
+NTSTATUS WINAPI wow64_NtUserWaitMessage( UINT *args ) +{ + return NtUserWaitMessage(); +} + NTSTATUS WINAPI wow64_NtUserWindowFromDC( UINT *args ) { HDC hdc = get_handle( &args ); diff --git a/include/ntuser.h b/include/ntuser.h index 2ca383c6e69..5b2b24a7f33 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -898,6 +898,7 @@ BOOL WINAPI NtUserUpdateLayeredWindow( HWND hwnd, HDC hdc_dst, const POINT *p BOOL WINAPI NtUserValidateRect( HWND hwnd, const RECT *rect ); WORD WINAPI NtUserVkKeyScanEx( WCHAR chr, HKL layout ); DWORD WINAPI NtUserWaitForInputIdle( HANDLE process, DWORD timeout, BOOL wow ); +BOOL WINAPI NtUserWaitMessage(void); HWND WINAPI NtUserWindowFromDC( HDC hdc ); HWND WINAPI NtUserWindowFromPoint( LONG x, LONG y );