private int RegisterMenuItem(uint id, uint idCmdFirst, string text, IntPtr bitmap, IntPtr subMenu, uint position,
                                     IntPtr registerTo)
        {
            var sub = new MENUITEMINFO();

            sub.cbSize = (uint)Marshal.SizeOf(sub);

            MIIM m = MIIM.MIIM_STRING | MIIM.MIIM_FTYPE | MIIM.MIIM_ID | MIIM.MIIM_STATE;

            if (bitmap != IntPtr.Zero)
            {
                m |= MIIM.MIIM_BITMAP;
            }
            if (subMenu != IntPtr.Zero)
            {
                m |= MIIM.MIIM_SUBMENU;
            }
            sub.fMask = m;

            sub.wID        = idCmdFirst + id;
            sub.fType      = MFT.MFT_STRING;
            sub.dwTypeData = text;
            sub.hSubMenu   = subMenu;
            sub.fState     = MFS.MFS_ENABLED;
            sub.hbmpItem   = bitmap;

            if (!NativeMethods.InsertMenuItem(registerTo, position, true, ref sub))
            {
                return(Marshal.GetHRForLastWin32Error());
            }
            return(0);
        }
Esempio n. 2
0
 public MENUITEMINFO(string text)
 {
     cbSize        = CbMenuItemInfo;
     dwTypeData    = text;
     cch           = text.Length;
     fMask         = 0;
     fType         = 0;
     fState        = 0;
     wID           = 0;
     hSubMenu      = IntPtr.Zero;
     hbmpChecked   = IntPtr.Zero;
     hbmpUnchecked = IntPtr.Zero;
     dwItemData    = IntPtr.Zero;
     hbmpItem      = IntPtr.Zero;
 }
Esempio n. 3
0
 public MENUITEMINFO(string text)
 {
     cbSize = cbMenuItemInfo;
     dwTypeData = text;
     cch = text.Length;
     fMask = 0;
     fType = 0;
     fState = 0;
     wID = 0;
     hSubMenu = IntPtr.Zero;
     hbmpChecked = IntPtr.Zero;
     hbmpUnchecked = IntPtr.Zero;
     dwItemData = IntPtr.Zero;
     hbmpItem = IntPtr.Zero;
 }
Esempio n. 4
0
 public MENUITEMINFO(MIIM pfMask)
 {
     fMask = pfMask;
 }