From: Jacek Caban jacek@codeweavers.com
--- dlls/win32u/gdiobj.c | 1 - dlls/win32u/message.c | 10 +--------- dlls/win32u/syscall.c | 1 + dlls/win32u/win32u.spec | 2 +- dlls/win32u/win32u_private.h | 1 - dlls/win32u/wrappers.c | 6 ------ dlls/wow64win/syscall.h | 1 + dlls/wow64win/user.c | 10 +++++++++- 8 files changed, 13 insertions(+), 19 deletions(-)
diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c index fddaf898761..e5c2c185511 100644 --- a/dlls/win32u/gdiobj.c +++ b/dlls/win32u/gdiobj.c @@ -1158,7 +1158,6 @@ static struct unix_funcs unix_funcs = NtUserDestroyMenu, NtUserDestroyWindow, NtUserDisableThreadIme, - NtUserDispatchMessage, NtUserDragDetect, NtUserDrawCaptionTemp, NtUserDrawIconEx, diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c index f16b7a35806..6d0138c35cf 100644 --- a/dlls/win32u/message.c +++ b/dlls/win32u/message.c @@ -2514,15 +2514,7 @@ LRESULT WINAPI NtUserDispatchMessage( const MSG *msg ) if (!init_win_proc_params( ¶ms, msg->hwnd, msg->message, msg->wParam, NtGetTickCount(), FALSE )) return 0; - __TRY - { - dispatch_win_proc_params( ¶ms, sizeof(params) ); - } - __EXCEPT - { - retval = 0; - } - __ENDTRY + dispatch_win_proc_params( ¶ms, sizeof(params) ); return retval; } if (msg->message == WM_SYSTIMER) diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c index f5508f62d16..a7e18158fb5 100644 --- a/dlls/win32u/syscall.c +++ b/dlls/win32u/syscall.c @@ -117,6 +117,7 @@ static void * const syscalls[] = NtUserDeleteMenu, NtUserDestroyAcceleratorTable, NtUserDestroyInputContext, + NtUserDispatchMessage, NtUserEndMenu, NtUserFindExistingCursorIcon, NtUserFindWindowEx, diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index d74685ad603..7ec96eedfcf 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -839,7 +839,7 @@ @ stub NtUserDisableProcessWindowFiltering @ stdcall NtUserDisableThreadIme(long) @ stub NtUserDiscardPointerFrameMessages -@ stdcall NtUserDispatchMessage(ptr) +@ stdcall -syscall NtUserDispatchMessage(ptr) @ stub NtUserDisplayConfigGetDeviceInfo @ stub NtUserDisplayConfigSetDeviceInfo @ stub NtUserDoSoundConnect diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 914a02ffd52..d5b3e0fdda8 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -215,7 +215,6 @@ struct unix_funcs BOOL (WINAPI *pNtUserDestroyMenu)( HMENU handle ); BOOL (WINAPI *pNtUserDestroyWindow)( HWND hwnd ); BOOL (WINAPI *pNtUserDisableThreadIme)( DWORD thread_id ); - LRESULT (WINAPI *pNtUserDispatchMessage)( const MSG *msg ); BOOL (WINAPI *pNtUserDragDetect)( HWND hwnd, int x, int y ); BOOL (WINAPI *pNtUserDrawCaptionTemp)( HWND hwnd, HDC hdc, const RECT *rect, HFONT font, HICON icon, const WCHAR *str, UINT flags ); diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c index 609e893403b..9c2264e887e 100644 --- a/dlls/win32u/wrappers.c +++ b/dlls/win32u/wrappers.c @@ -855,12 +855,6 @@ BOOL WINAPI NtUserDisableThreadIme( DWORD thread_id ) return unix_funcs->pNtUserDisableThreadIme( thread_id ); }
-LRESULT WINAPI NtUserDispatchMessage( const MSG *msg ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserDispatchMessage( msg ); -} - BOOL WINAPI NtUserDragDetect( HWND hwnd, int x, int y ) { if (!unix_funcs) return FALSE; diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h index 005037d71a5..3842eb3c1da 100644 --- a/dlls/wow64win/syscall.h +++ b/dlls/wow64win/syscall.h @@ -104,6 +104,7 @@ SYSCALL_ENTRY( NtUserDeleteMenu ) \ SYSCALL_ENTRY( NtUserDestroyAcceleratorTable ) \ SYSCALL_ENTRY( NtUserDestroyInputContext ) \ + SYSCALL_ENTRY( NtUserDispatchMessage ) \ SYSCALL_ENTRY( NtUserEndMenu ) \ SYSCALL_ENTRY( NtUserFindExistingCursorIcon ) \ SYSCALL_ENTRY( NtUserFindWindowEx ) \ diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index 386458ccf0c..7ca1e87109d 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -78,7 +78,7 @@ typedef struct DWORD dwType; } RAWINPUTDEVICELIST32;
-static MSG *msg_32to64( MSG *msg, MSG32 *msg32 ) +static MSG *msg_32to64( MSG *msg, const MSG32 *msg32 ) { if (!msg32) return NULL;
@@ -281,6 +281,14 @@ NTSTATUS WINAPI wow64_NtUserDestroyInputContext( UINT *args ) return NtUserDestroyInputContext( handle ); }
+NTSTATUS WINAPI wow64_NtUserDispatchMessage( UINT *args ) +{ + const MSG32 *msg32 = get_ptr( &args ); + MSG msg; + + return NtUserDispatchMessage( msg_32to64( &msg, msg32 )); +} + NTSTATUS WINAPI wow64_NtUserEndMenu( UINT *args ) { return NtUserEndMenu();