Jacek Caban : win32u: Move GetMenuItemCount implementation from user32.
Alexandre Julliard
julliard at winehq.org
Mon May 2 16:02:10 CDT 2022
Module: wine
Branch: master
Commit: bad82953dbe5c0a8a61f81ca5313d7f32a004977
URL: https://source.winehq.org/git/wine.git/?a=commit;h=bad82953dbe5c0a8a61f81ca5313d7f32a004977
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Apr 14 16:28:06 2022 +0200
win32u: Move GetMenuItemCount implementation from user32.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/menu.c | 12 ++----------
dlls/win32u/menu.c | 14 ++++++++++++++
dlls/win32u/sysparams.c | 3 +++
dlls/win32u/win32u_private.h | 1 +
include/ntuser.h | 6 ++++++
5 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c
index e81fc086918..9f51fa555f8 100644
--- a/dlls/user32/menu.c
+++ b/dlls/user32/menu.c
@@ -3696,17 +3696,9 @@ UINT WINAPI GetMenuState( HMENU menu, UINT item, UINT flags )
/**********************************************************************
* GetMenuItemCount (USER32.@)
*/
-INT WINAPI GetMenuItemCount( HMENU hMenu )
+INT WINAPI GetMenuItemCount( HMENU menu )
{
- POPUPMENU *menu = grab_menu_ptr(hMenu);
- INT count;
-
- if (!menu) return -1;
- count = menu->nItems;
- release_menu_ptr(menu);
-
- TRACE("(%p) returning %d\n", hMenu, count);
- return count;
+ return NtUserGetMenuItemCount( menu );
}
diff --git a/dlls/win32u/menu.c b/dlls/win32u/menu.c
index 0f918a4762d..8544cca47b4 100644
--- a/dlls/win32u/menu.c
+++ b/dlls/win32u/menu.c
@@ -864,6 +864,20 @@ UINT WINAPI NtUserThunkedMenuItemInfo( HMENU handle, UINT pos, UINT flags, UINT
return ret;
}
+/* see GetMenuItemCount */
+INT get_menu_item_count( HMENU handle )
+{
+ POPUPMENU *menu;
+ INT count;
+
+ if (!(menu = grab_menu_ptr( handle ))) return -1;
+ count = menu->nItems;
+ release_menu_ptr(menu);
+
+ TRACE( "(%p) returning %d\n", handle, count );
+ return count;
+}
+
/**********************************************************************
* NtUserRemoveMenu (win32u.@)
*/
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c
index 3cf03d68399..114016954aa 100644
--- a/dlls/win32u/sysparams.c
+++ b/dlls/win32u/sysparams.c
@@ -4718,6 +4718,9 @@ ULONG_PTR WINAPI NtUserCallOneParam( ULONG_PTR arg, ULONG code )
case NtUserCallOneParam_GetIconParam:
return get_icon_param( UlongToHandle(arg) );
+ case NtUserCallOneParam_GetMenuItemCount:
+ return get_menu_item_count( UlongToHandle(arg) );
+
case NtUserCallOneParam_GetSysColor:
return get_sys_color( arg );
diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h
index caf77590559..537eec38a34 100644
--- a/dlls/win32u/win32u_private.h
+++ b/dlls/win32u/win32u_private.h
@@ -377,6 +377,7 @@ extern HMENU create_menu( BOOL is_popup ) DECLSPEC_HIDDEN;
extern BOOL draw_menu_bar( HWND hwnd ) DECLSPEC_HIDDEN;
extern HMENU get_menu( HWND hwnd ) DECLSPEC_HIDDEN;
extern BOOL get_menu_info( HMENU handle, MENUINFO *info ) DECLSPEC_HIDDEN;
+extern INT get_menu_item_count( HMENU handle ) DECLSPEC_HIDDEN;
extern BOOL set_window_menu( HWND hwnd, HMENU handle ) DECLSPEC_HIDDEN;
/* message.c */
diff --git a/include/ntuser.h b/include/ntuser.h
index 75c16e412c0..1876b32c84b 100644
--- a/include/ntuser.h
+++ b/include/ntuser.h
@@ -704,6 +704,7 @@ enum
NtUserCallOneParam_GetClipCursor,
NtUserCallOneParam_GetCursorPos,
NtUserCallOneParam_GetIconParam,
+ NtUserCallOneParam_GetMenuItemCount,
NtUserCallOneParam_GetPrimaryMonitorRect,
NtUserCallOneParam_GetSysColor,
NtUserCallOneParam_GetSysColorBrush,
@@ -773,6 +774,11 @@ static inline UINT_PTR NtUserGetIconParam( HICON icon )
return NtUserCallOneParam( HandleToUlong(icon), NtUserCallOneParam_GetIconParam );
}
+static inline UINT_PTR NtUserGetMenuItemCount( HMENU menu )
+{
+ return NtUserCallOneParam( HandleToUlong(menu), NtUserCallOneParam_GetMenuItemCount );
+}
+
static inline RECT NtUserGetPrimaryMonitorRect(void)
{
RECT primary;
More information about the wine-cvs
mailing list