5 (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
7 #define MENU_ITEM_TYPE(flags) \
8 ((flags) & (MF_STRING | MF_BITMAP | MF_OWNERDRAW | MF_SEPARATOR))
11 #define MF_END (0x0080)
14 typedef struct _MENU_ITEM
16 struct _MENU_ITEM
*Next
;
22 HBITMAP hbmpUnchecked
;
28 } MENU_ITEM
, *PMENU_ITEM
;
30 typedef struct _MENU_OBJECT
34 PMENU_ITEM MenuItemList
;
37 } MENU_OBJECT
, *PMENU_OBJECT
;
39 typedef struct _SETMENUITEMRECT
44 } SETMENUITEMRECT
, *PSETMENUITEMRECT
;
47 IntGetMenuObject(HMENU hMenu
);
49 #define IntReleaseMenuObject(MenuObj) \
50 UserDereferenceObject(MenuObj)
53 IntFreeMenuItem(PMENU_OBJECT MenuObject
, PMENU_ITEM MenuItem
, BOOL bRecurse
);
56 IntRemoveMenuItem(PMENU_OBJECT MenuObject
, UINT uPosition
, UINT uFlags
,
60 IntDeleteMenuItems(PMENU_OBJECT MenuObject
, BOOL bRecurse
);
63 IntDestroyMenuObject(PMENU_OBJECT MenuObject
, BOOL bRecurse
, BOOL RemoveFromProcess
);
66 IntCreateMenu(PHANDLE Handle
, BOOL IsMenuBar
);
69 IntCloneMenu(PMENU_OBJECT Source
);
72 IntSetMenuFlagRtoL(PMENU_OBJECT MenuObject
);
75 IntSetMenuContextHelpId(PMENU_OBJECT MenuObject
, DWORD dwContextHelpId
);
78 IntGetMenuInfo(PMENU_OBJECT MenuObject
, PROSMENUINFO lpmi
);
81 IntIsMenu(HMENU hMenu
);
84 IntSetMenuInfo(PMENU_OBJECT MenuObject
, PROSMENUINFO lpmi
);
87 IntGetMenuItemByFlag(PMENU_OBJECT MenuObject
, UINT uSearchBy
, UINT fFlag
,
88 PMENU_OBJECT
*SubMenu
, PMENU_ITEM
*MenuItem
,
89 PMENU_ITEM
*PrevMenuItem
);
92 IntEnableMenuItem(PMENU_OBJECT MenuObject
, UINT uIDEnableItem
, UINT uEnable
);
95 IntCheckMenuItem(PMENU_OBJECT MenuObject
, UINT uIDCheckItem
, UINT uCheck
);
98 IntSetMenuItemRect(PMENU_OBJECT MenuObject
, UINT Item
, BOOL fByPos
, RECTL
*rcRect
);
100 DWORD APIENTRY
UserInsertMenuItem(HMENU hMenu
, UINT uItem
, BOOL fByPosition
, LPCMENUITEMINFOW lpmii
);
103 IntCleanupMenus(struct _EPROCESS
*Process
, PW32PROCESS Win32Process
);
106 IntInsertMenuItem(PMENU_OBJECT MenuObject
, UINT uItem
, BOOL fByPosition
,
107 PROSMENUITEMINFO ItemInfo
);
114 CleanupMenuImpl(VOID
);
116 #endif /* _WIN32K_MENU_H */