This topic has not yet been rated - Rate this topic

MENUEX_TEMPLATE_ITEM structure

Applies to: desktop apps only

Defines a menu item in an extended menu template. This structure definition is for explanation only; it is not present in any standard header file.

Syntax

typedef struct {
  DWORD dwHelpId;
  DWORD dwType;
  DWORD dwState;
  DWORD menuId;
  WORD  bResInfo;
  WCHAR szText;
  DWORD dwHelpId;
} MENUEX_TEMPLATE_ITEM;

Members

dwHelpId

Type: DWORD

The help identifier for a drop-down menu or submenu. This member, which is included only for items that open drop-down menus or submenus, is located at the first DWORD boundary following the variable-length szText member.

dwType

Type: DWORD

The menu item type. This member can be a combination of the type (beginning with MFT) values listed with the MENUITEMINFO structure.

dwState

Type: DWORD

The menu item state. This member can be a combination of the state (beginning with MFS) values listed with the MENUITEMINFO structure.

menuId

Type: DWORD

The menu item identifier. This is an application-defined value that identifies the menu item. In an extended menu resource, items that open drop-down menus or submenus as well as command items can have identifiers.

bResInfo

Type: WORD

Specifies whether the menu item is the last item in the menu bar, drop-down menu, submenu, or shortcut menu and whether it is an item that opens a drop-down menu or submenu. This member can be zero or more of these values. For 32-bit applications, this member is a word; for 16-bit applications, it is a byte.

0x80

The structure defines the last menu item in the menu bar, drop-down menu, submenu, or shortcut menu.

0x01

The structure defines a item that opens a drop-down menu or submenu. Subsequent structures define menu items in the corresponding drop-down menu or submenu.

szText

Type: WCHAR

The menu item text. This member is a null-terminated Unicode string, aligned on a word boundary. The size of the menu item definition varies depending on the length of this string.

dwHelpId

Type: DWORD

A Help identifier for a drop-down menu or submenu. This member is located at the first DWORD boundary following szText member.

Remarks

An extended menu template consists of a MENUEX_TEMPLATE_HEADER structure followed by one or more contiguous MENUEX_TEMPLATE_ITEM structures. The MENUEX_TEMPLATE_ITEM structures, which are variable in length, are aligned on DWORD boundaries. To create a menu from an extended menu template in memory, use the LoadMenuIndirect function.

Requirements

Minimum supported client

Windows 2000 Professional

Minimum supported server

Windows 2000 Server

See also

Reference
LoadMenuIndirect
MENUEX_TEMPLATE_HEADER
MENUITEMINFO
Conceptual
Menus

 

 

Send comments about this topic to Microsoft

Build date: 2/3/2012

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Incorrect syntax definition
The syntax definition is incorrect. There're two types of MENUEX_TEMPLATE_ITEM structures. The first is of a popup menu and the second is of a command menu item. The popup menu has an additional dwHelpId, but it's the last item (description is correct) that also happens to be aligned at a 32-bit boundary and therefore isn't really part of the structure.

Popup:

typedef struct {
DWORD dwType;
DWORD dwState;
DWORD menuId;
WORD bResInfo;
WCHAR szText;
-- 32-bit alignment --
DWORD dwHelpId;
} MENUEX_TEMPLATE_ITEM;

Command:

typedef struct {
DWORD dwType;
DWORD dwState;
DWORD menuId;
WORD bResInfo;
WCHAR szText;
} MENUEX_TEMPLATE_ITEM;

In addition, szText is omitted if text is empty, because of alignment there's a 0 byte here, but it doesn't belong to the structure.