Jacek Caban : win32u: Introduce inline helpers for NtUserCallNoParam calls.

Alexandre Julliard julliard at winehq.org
Wed Apr 13 15:14:45 CDT 2022


Module: wine
Branch: master
Commit: 6f1e48f4242f817ed04c8db6c162fbd296486f31
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=6f1e48f4242f817ed04c8db6c162fbd296486f31

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Apr 13 15:06:44 2022 +0200

win32u: Introduce inline helpers for NtUserCallNoParam calls.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/input.c     |  4 ++--
 dlls/user32/menu.c      |  2 +-
 dlls/user32/win.c       |  2 +-
 dlls/win32u/sysparams.c | 15 +++++++++++----
 include/ntuser.h        | 46 +++++++++++++++++++++++++++++++++-------------
 5 files changed, 48 insertions(+), 21 deletions(-)

diff --git a/dlls/user32/input.c b/dlls/user32/input.c
index 39c215a0b09..2407b9d2960 100644
--- a/dlls/user32/input.c
+++ b/dlls/user32/input.c
@@ -173,7 +173,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetCursorPos( POINT *pt )
  */
 BOOL WINAPI DECLSPEC_HOTPATCH ReleaseCapture(void)
 {
-    return NtUserCallNoParam( NtUserReleaseCapture );
+    return NtUserReleaseCapture();
 }
 
 
@@ -193,7 +193,7 @@ HWND WINAPI GetCapture(void)
  */
 BOOL WINAPI GetInputState(void)
 {
-    return NtUserCallNoParam( NtUserGetInputState );
+    return NtUserGetInputState();
 }
 
 
diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c
index c6fdb01c113..185d596fbb8 100644
--- a/dlls/user32/menu.c
+++ b/dlls/user32/menu.c
@@ -4213,7 +4213,7 @@ BOOL WINAPI SetMenuItemBitmaps( HMENU hMenu, UINT nPos, UINT wFlags,
  */
 HMENU WINAPI CreateMenu(void)
 {
-    return UlongToHandle( NtUserCallNoParam( NtUserCreateMenu ));
+    return NtUserCreateMenu();
 }
 
 
diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index 881825b5510..ec5a964b3c2 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -871,7 +871,7 @@ HWND WINAPI GetDesktopWindow(void)
     struct user_thread_info *thread_info = get_user_thread_info();
 
     if (thread_info->top_window) return thread_info->top_window;
-    return UlongToHandle( NtUserCallNoParam( NtUserGetDesktopWindow ));
+    return NtUserGetDesktopWindow();
 }
 
 
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c
index c542de61451..77a6a70e27f 100644
--- a/dlls/win32u/sysparams.c
+++ b/dlls/win32u/sysparams.c
@@ -4632,24 +4632,31 @@ ULONG_PTR WINAPI NtUserCallNoParam( ULONG code )
 {
     switch(code)
     {
-    case NtUserCreateMenu:
+    case NtUserCallNoParam_CreateMenu:
         return HandleToUlong( create_menu() );
-    case NtUserGetDesktopWindow:
+
+    case NtUserCallNoParam_GetDesktopWindow:
         return HandleToUlong( get_desktop_window() );
-    case NtUserGetInputState:
+
+    case NtUserCallNoParam_GetInputState:
         return get_input_state();
-    case NtUserReleaseCapture:
+
+    case NtUserCallNoParam_ReleaseCapture:
         return release_capture();
+
     /* temporary exports */
     case NtUserExitingThread:
         exiting_thread_id = GetCurrentThreadId();
         return 0;
+
     case NtUserThreadDetach:
         thread_detach();
         return 0;
+
     case NtUserUpdateClipboard:
         user_driver->pUpdateClipboard();
         return 0;
+
     default:
         FIXME( "invalid code %u\n", code );
         return 0;
diff --git a/include/ntuser.h b/include/ntuser.h
index 081760333e9..5190bec5560 100644
--- a/include/ntuser.h
+++ b/include/ntuser.h
@@ -131,19 +131,6 @@ struct win_hook_params
 #define NTUSER_DPI_PER_MONITOR_AWARE_V2   0x00000022
 #define NTUSER_DPI_PER_UNAWARE_GDISCALED  0x40006010
 
-/* NtUserCallNoParam codes, not compatible with Windows */
-enum
-{
-    NtUserCreateMenu,
-    NtUserGetDesktopWindow,
-    NtUserGetInputState,
-    NtUserReleaseCapture,
-    /* temporary exports */
-    NtUserExitingThread,
-    NtUserThreadDetach,
-    NtUserUpdateClipboard,
-};
-
 /* NtUserCallOneParam codes, not compatible with Windows */
 enum
 {
@@ -676,4 +663,37 @@ DWORD   WINAPI NtUserWaitForInputIdle( HANDLE process, DWORD timeout, BOOL wow )
 HWND    WINAPI NtUserWindowFromDC( HDC hdc );
 HWND    WINAPI NtUserWindowFromPoint( LONG x, LONG y );
 
+/* NtUserCallNoParam codes, not compatible with Windows */
+enum
+{
+    NtUserCallNoParam_CreateMenu,
+    NtUserCallNoParam_GetDesktopWindow,
+    NtUserCallNoParam_GetInputState,
+    NtUserCallNoParam_ReleaseCapture,
+    /* temporary exports */
+    NtUserExitingThread,
+    NtUserThreadDetach,
+    NtUserUpdateClipboard,
+};
+
+static inline HMENU NtUserCreateMenu(void)
+{
+    return UlongToHandle( NtUserCallNoParam( NtUserCallNoParam_CreateMenu ));
+}
+
+static inline HWND NtUserGetDesktopWindow(void)
+{
+    return UlongToHandle( NtUserCallNoParam( NtUserCallNoParam_GetDesktopWindow ));
+}
+
+static inline BOOL NtUserGetInputState(void)
+{
+    return NtUserCallNoParam( NtUserCallNoParam_GetInputState );
+}
+
+static inline BOOL NtUserReleaseCapture(void)
+{
+    return NtUserCallNoParam( NtUserCallNoParam_ReleaseCapture );
+}
+
 #endif /* _NTUSER_ */




More information about the wine-cvs mailing list