Module: wine Branch: master Commit: 31dbce9675b6f2b25a4af5d4102fc36213838137 URL: https://source.winehq.org/git/wine.git/?a=commit;h=31dbce9675b6f2b25a4af5d41...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Apr 13 15:08:02 2022 +0200
win32u: Introduce inline helpers for NtUserCallHwnd calls.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/user32/win.c | 20 ++++++------- dlls/user32/winpos.c | 2 +- dlls/win32u/window.c | 30 ++++++++++++------- include/ntuser.h | 81 ++++++++++++++++++++++++++++++++++++++++++---------- 4 files changed, 97 insertions(+), 36 deletions(-)
diff --git a/dlls/user32/win.c b/dlls/user32/win.c index 24aeaaeadfd..5223c776d5f 100644 --- a/dlls/user32/win.c +++ b/dlls/user32/win.c @@ -906,7 +906,7 @@ BOOL WINAPI EnableWindow( HWND hwnd, BOOL enable ) */ BOOL WINAPI IsWindowEnabled( HWND hwnd ) { - return NtUserCallHwnd( hwnd, NtUserIsWindowEnabled ); + return NtUserIsWindowEnabled( hwnd ); }
/*********************************************************************** @@ -914,7 +914,7 @@ BOOL WINAPI IsWindowEnabled( HWND hwnd ) */ BOOL WINAPI IsWindowUnicode( HWND hwnd ) { - return NtUserCallHwnd( hwnd, NtUserIsWindowUnicode ); + return NtUserIsWindowUnicode( hwnd ); }
@@ -923,7 +923,7 @@ BOOL WINAPI IsWindowUnicode( HWND hwnd ) */ DPI_AWARENESS_CONTEXT WINAPI GetWindowDpiAwarenessContext( HWND hwnd ) { - return (DPI_AWARENESS_CONTEXT)NtUserCallHwnd( hwnd, NtUserGetWindowDpiAwarenessContext ); + return NtUserGetWindowDpiAwarenessContext( hwnd ); }
@@ -932,7 +932,7 @@ DPI_AWARENESS_CONTEXT WINAPI GetWindowDpiAwarenessContext( HWND hwnd ) */ UINT WINAPI GetDpiForWindow( HWND hwnd ) { - return NtUserCallHwnd( hwnd, NtUserGetDpiForWindow ); + return NtUserGetDpiForWindow( hwnd ); }
@@ -1215,7 +1215,7 @@ INT WINAPI GetWindowTextLengthA( HWND hwnd )
/* when window belongs to other process, don't send a message */ GetCPInfo( CP_ACP, &info ); - return NtUserCallHwnd( hwnd, NtUserGetWindowTextLength ) * info.MaxCharSize; + return NtUserGetWindowTextLength( hwnd ) * info.MaxCharSize; }
/******************************************************************* @@ -1226,7 +1226,7 @@ INT WINAPI GetWindowTextLengthW( HWND hwnd ) if (WIN_IsCurrentProcess( hwnd )) return SendMessageW( hwnd, WM_GETTEXTLENGTH, 0, 0 );
/* when window belongs to other process, don't send a message */ - return NtUserCallHwnd( hwnd, NtUserGetWindowTextLength ); + return NtUserGetWindowTextLength( hwnd ); }
@@ -1235,7 +1235,7 @@ INT WINAPI GetWindowTextLengthW( HWND hwnd ) */ BOOL WINAPI IsWindow( HWND hwnd ) { - return NtUserCallHwnd( hwnd, NtUserIsWindow ); + return NtUserIsWindow( hwnd ); }
@@ -1253,7 +1253,7 @@ DWORD WINAPI GetWindowThreadProcessId( HWND hwnd, LPDWORD process ) */ HWND WINAPI GetParent( HWND hwnd ) { - return UlongToHandle( NtUserCallHwnd( hwnd, NtUserGetParent )); + return NtUserGetParent( hwnd ); }
@@ -1271,7 +1271,7 @@ BOOL WINAPI IsChild( HWND parent, HWND child ) */ BOOL WINAPI IsWindowVisible( HWND hwnd ) { - return NtUserCallHwnd( hwnd, NtUserIsWindowVisible ); + return NtUserIsWindowVisible( hwnd ); }
@@ -1564,7 +1564,7 @@ BOOL WINAPI FlashWindow( HWND hWnd, BOOL bInvert ) */ DWORD WINAPI GetWindowContextHelpId( HWND hwnd ) { - return NtUserCallHwnd( hwnd, NtUserGetWindowContextHelpId ); + return NtUserGetWindowContextHelpId( hwnd ); }
diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c index 3f7a38a75c9..04a3ddb5e21 100644 --- a/dlls/user32/winpos.c +++ b/dlls/user32/winpos.c @@ -895,7 +895,7 @@ BOOL WINAPI EndDeferWindowPos( HDWP hdwp ) */ UINT WINAPI ArrangeIconicWindows( HWND parent ) { - return NtUserCallHwnd( parent, NtUserArrangeIconicWindows ); + return NtUserArrangeIconicWindows( parent ); }
diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index b2913b267c4..b7a6ebb7090 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -4976,26 +4976,36 @@ ULONG_PTR WINAPI NtUserCallHwnd( HWND hwnd, DWORD code ) { switch (code) { - case NtUserArrangeIconicWindows: + case NtUserCallHwnd_ArrangeIconicWindows: return arrange_iconic_windows( hwnd ); - case NtUserGetDpiForWindow: + + case NtUserCallHwnd_GetDpiForWindow: return get_dpi_for_window( hwnd ); - case NtUserGetParent: + + case NtUserCallHwnd_GetParent: return HandleToUlong( get_parent( hwnd )); - case NtUserGetWindowContextHelpId: + + case NtUserCallHwnd_GetWindowContextHelpId: return get_window_context_help_id( hwnd ); - case NtUserGetWindowDpiAwarenessContext: + + case NtUserCallHwnd_GetWindowDpiAwarenessContext: return (ULONG_PTR)get_window_dpi_awareness_context( hwnd ); - case NtUserGetWindowTextLength: + + case NtUserCallHwnd_GetWindowTextLength: return get_server_window_text( hwnd, NULL, 0 ); - case NtUserIsWindow: + + case NtUserCallHwnd_IsWindow: return is_window( hwnd ); - case NtUserIsWindowEnabled: + + case NtUserCallHwnd_IsWindowEnabled: return is_window_enabled( hwnd ); - case NtUserIsWindowUnicode: + + case NtUserCallHwnd_IsWindowUnicode: return is_window_unicode( hwnd ); - case NtUserIsWindowVisible: + + case NtUserCallHwnd_IsWindowVisible: return is_window_visible( hwnd ); + default: FIXME( "invalid code %u\n", code ); return 0; diff --git a/include/ntuser.h b/include/ntuser.h index 8d94fc133da..df89c63b405 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -131,21 +131,6 @@ struct win_hook_params #define NTUSER_DPI_PER_MONITOR_AWARE_V2 0x00000022 #define NTUSER_DPI_PER_UNAWARE_GDISCALED 0x40006010
-/* NtUserCallHwnd codes, not compatible with Windows */ -enum -{ - NtUserArrangeIconicWindows, - NtUserGetDpiForWindow, - NtUserGetParent, - NtUserGetWindowContextHelpId, - NtUserGetWindowDpiAwarenessContext, - NtUserGetWindowTextLength, - NtUserIsWindow, - NtUserIsWindowEnabled, - NtUserIsWindowUnicode, - NtUserIsWindowVisible, -}; - /* NtUserCallHwndParam codes, not compatible with Windows */ enum { @@ -810,4 +795,70 @@ static inline BOOL NtUserUnhookWindowsHook( INT id, HOOKPROC proc ) return NtUserCallTwoParam( id, (UINT_PTR)proc, NtUserCallTwoParam_UnhookWindowsHook ); }
+/* NtUserCallHwnd codes, not compatible with Windows */ +enum +{ + NtUserCallHwnd_ArrangeIconicWindows, + NtUserCallHwnd_GetDpiForWindow, + NtUserCallHwnd_GetParent, + NtUserCallHwnd_GetWindowContextHelpId, + NtUserCallHwnd_GetWindowDpiAwarenessContext, + NtUserCallHwnd_GetWindowTextLength, + NtUserCallHwnd_IsWindow, + NtUserCallHwnd_IsWindowEnabled, + NtUserCallHwnd_IsWindowUnicode, + NtUserCallHwnd_IsWindowVisible, +}; + +static inline UINT NtUserArrangeIconicWindows( HWND parent ) +{ + return NtUserCallHwnd( parent, NtUserCallHwnd_ArrangeIconicWindows ); +} + +static inline DWORD NtUserGetWindowContextHelpId( HWND hwnd ) +{ + return NtUserCallHwnd( hwnd, NtUserCallHwnd_GetWindowContextHelpId ); +} + +static inline UINT NtUserGetDpiForWindow( HWND hwnd ) +{ + return NtUserCallHwnd( hwnd, NtUserCallHwnd_GetDpiForWindow ); +} + +static inline HWND NtUserGetParent( HWND hwnd ) +{ + return UlongToHandle( NtUserCallHwnd( hwnd, NtUserCallHwnd_GetParent )); +} + +static inline DPI_AWARENESS_CONTEXT NtUserGetWindowDpiAwarenessContext( HWND hwnd ) +{ + return (DPI_AWARENESS_CONTEXT)NtUserCallHwnd( hwnd, + NtUserCallHwnd_GetWindowDpiAwarenessContext ); +} + +static inline INT NtUserGetWindowTextLength( HWND hwnd ) +{ + return NtUserCallHwnd( hwnd, NtUserCallHwnd_GetWindowTextLength ); +} + +static inline BOOL NtUserIsWindow( HWND hwnd ) +{ + return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindow ); +} + +static inline BOOL NtUserIsWindowEnabled( HWND hwnd ) +{ + return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindowEnabled ); +} + +static inline BOOL NtUserIsWindowUnicode( HWND hwnd ) +{ + return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindowUnicode ); +} + +static inline BOOL NtUserIsWindowVisible( HWND hwnd ) +{ + return NtUserCallHwnd( hwnd, NtUserCallHwnd_IsWindowVisible ); +} + #endif /* _NTUSER_ */