GetMenuItemInfo (user32)
Last changed: NetMage-165.214.11.83

.
Summary

C# Signature:

[DllImport("user32.dll")]
static extern bool GetMenuItemInfo(IntPtr hMenu, UInt32 uItem, bool fByPosition, [In,Out] MENUITEMINFO lpmii);

User-Defined Types:

MIIM

MENUITEMINFO

Notes:

[StructLayout(LayoutKind.Sequential)]
public class MENUITEMINFO{
     public Int32 cbSize = Mashal.SizeOf(typeof(MENUITEMINFO));
     public MIIM fMask;
     public UInt32 fType;
     public UInt32 fState;
     public UInt32 wID;
     public IntPtr hSubMenu;
     public IntPtr hbmpChecked;
     public IntPtr hbmpUnchecked;
     public IntPtr dwItemData;
     public string dwTypeData = null;
     public UInt32 cch;
     public IntPtr hbmpItem;

     public MENUITEMINFO() { }
     public MENUITEMINFO(MIIM pfMask) {
     fMask = pfMask;
     }
}

public const UInt32 MF_BYCOMMAND = 0x00000000;
public const UInt32 MF_BYPOSITION = 0x00000400;

// Values for the fMask parameter
[Flags]
public enum MIIM {
     BITMAP = 0x00000080,
     CHECKMARKS = 0x00000008,
     DATA = 0x00000020,
     FTYPE = 0x00000100,
     ID = 0x00000002,
     STATE = 0x00000001,
     STRING = 0x00000040,
     SUBMENU = 0x00000004,
     TYPE = 0x00000010
}

Tips & Tricks:

Please add some!

Sample Code:

MENUITEMINFO mif = new MENUITEMINFO(MIIM.TYPE);
bool a = GetMenuItemInfo(hMenu, 0, true, mif);

Alternative Managed API:

Do you know one? Please contribute it!

Documentation