Module: wine Branch: master Commit: a23c1279c6403fda85bcb6c9ca0861b0e853b370 URL: https://gitlab.winehq.org/wine/wine/-/commit/a23c1279c6403fda85bcb6c9ca0861b...
Author: Jacek Caban jacek@codeweavers.com Date: Sun Jul 10 16:19:41 2022 +0200
win32u: Use syscall interface for NtUserCallHwnd and NtUserCallHwndParam.
---
dlls/win32u/gdiobj.c | 2 -- dlls/win32u/syscall.c | 2 ++ dlls/win32u/win32u.spec | 4 ++-- dlls/win32u/win32u_private.h | 2 -- dlls/win32u/wrappers.c | 12 ------------ dlls/wow64win/syscall.h | 2 ++ dlls/wow64win/user.c | 18 ++++++++++++++++++ 7 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c index 5bb8adedf44..18881afd27c 100644 --- a/dlls/win32u/gdiobj.c +++ b/dlls/win32u/gdiobj.c @@ -1136,8 +1136,6 @@ static struct unix_funcs unix_funcs = NtGdiUnrealizeObject, NtGdiUpdateColors, NtGdiWidenPath, - NtUserCallHwnd, - NtUserCallHwndParam, NtUserCallNextHookEx, NtUserCallNoParam, NtUserCallOneParam, diff --git a/dlls/win32u/syscall.c b/dlls/win32u/syscall.c index 37d94aabcdb..ee6b3fa31d1 100644 --- a/dlls/win32u/syscall.c +++ b/dlls/win32u/syscall.c @@ -106,6 +106,8 @@ static void * const syscalls[] = NtUserAttachThreadInput, NtUserBeginPaint, NtUserBuildHwndList, + NtUserCallHwnd, + NtUserCallHwndParam, NtUserCallMsgFilter, NtUserCheckMenuItem, NtUserChildWindowFromPointEx, diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec index 37d21d46a79..fa4fbbcdfe9 100644 --- a/dlls/win32u/win32u.spec +++ b/dlls/win32u/win32u.spec @@ -768,11 +768,11 @@ @ stub NtUserBuildPropList @ stub NtUserCalcMenuBar @ stub NtUserCalculatePopupWindowPosition -@ stdcall NtUserCallHwnd(long long) +@ stdcall -syscall NtUserCallHwnd(long long) @ stub NtUserCallHwndLock @ stub NtUserCallHwndLockSafe @ stub NtUserCallHwndOpt -@ stdcall NtUserCallHwndParam(long ptr long) +@ stdcall -syscall NtUserCallHwndParam(long ptr long) @ stub NtUserCallHwndParamLock @ stub NtUserCallHwndParamLockSafe @ stub NtUserCallHwndSafe diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 3cb16b0d300..9ef7d8906a7 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -186,8 +186,6 @@ struct unix_funcs BOOL (WINAPI *pNtGdiUnrealizeObject)( HGDIOBJ obj ); BOOL (WINAPI *pNtGdiUpdateColors)( HDC hdc ); BOOL (WINAPI *pNtGdiWidenPath)( HDC hdc ); - ULONG_PTR (WINAPI *pNtUserCallHwnd)( HWND hwnd, DWORD code ); - ULONG_PTR (WINAPI *pNtUserCallHwndParam)( HWND hwnd, DWORD_PTR param, DWORD code ); LRESULT (WINAPI *pNtUserCallNextHookEx)( HHOOK hhook, INT code, WPARAM wparam, LPARAM lparam ); ULONG_PTR (WINAPI *pNtUserCallNoParam)( ULONG code ); ULONG_PTR (WINAPI *pNtUserCallOneParam)( ULONG_PTR arg, ULONG code ); diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c index 6f6bad05b28..2cfc6c050db 100644 --- a/dlls/win32u/wrappers.c +++ b/dlls/win32u/wrappers.c @@ -749,18 +749,6 @@ ULONG_PTR WINAPI NtUserCallTwoParam( ULONG_PTR arg1, ULONG_PTR arg2, ULONG code return unix_funcs->pNtUserCallTwoParam( arg1, arg2, code ); }
-ULONG_PTR WINAPI NtUserCallHwnd( HWND hwnd, DWORD code ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserCallHwnd( hwnd, code ); -} - -ULONG_PTR WINAPI NtUserCallHwndParam( HWND hwnd, DWORD_PTR param, DWORD code ) -{ - if (!unix_funcs) return 0; - return unix_funcs->pNtUserCallHwndParam( hwnd, param, code ); -} - BOOL WINAPI NtUserCloseClipboard(void) { if (!unix_funcs) return FALSE; diff --git a/dlls/wow64win/syscall.h b/dlls/wow64win/syscall.h index aa152eeb650..71f01ce6207 100644 --- a/dlls/wow64win/syscall.h +++ b/dlls/wow64win/syscall.h @@ -93,6 +93,8 @@ SYSCALL_ENTRY( NtUserAttachThreadInput ) \ SYSCALL_ENTRY( NtUserBeginPaint ) \ SYSCALL_ENTRY( NtUserBuildHwndList ) \ + SYSCALL_ENTRY( NtUserCallHwnd ) \ + SYSCALL_ENTRY( NtUserCallHwndParam ) \ SYSCALL_ENTRY( NtUserCallMsgFilter ) \ SYSCALL_ENTRY( NtUserCheckMenuItem ) \ SYSCALL_ENTRY( NtUserChildWindowFromPointEx ) \ diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index db7d4d06556..948318077f4 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -220,6 +220,24 @@ NTSTATUS WINAPI wow64_NtUserBuildHwndList( UINT *args ) return status; }
+NTSTATUS WINAPI wow64_NtUserCallHwnd( UINT *args ) +{ + HWND hwnd = get_handle( &args ); + DWORD code = get_ulong( &args ); + + return NtUserCallHwnd( hwnd, code ); +} + +NTSTATUS WINAPI wow64_NtUserCallHwndParam( UINT *args ) +{ + HWND hwnd = get_handle( &args ); + DWORD_PTR param = get_ulong( &args ); + DWORD code = get_ulong( &args ); + + FIXME( "%p %Ix %lu\n", hwnd, param, code ); + return 0; +} + NTSTATUS WINAPI wow64_NtUserCallMsgFilter( UINT *args ) { MSG32 *msg32 = get_ptr( &args );