2 using System.Collections.Generic;
4 using System.Runtime.InteropServices;
7 namespace Pithos.ShellExtensions.Menus
9 internal class MenuItem
11 public string MenuText { get; set; }
12 public string Verb { get; set; }
13 public string VerbCanonicalName { get; set; }
14 public string VerbHelpText { get; set; }
15 public uint MenuDisplayId { get; set; }
16 public Action<IntPtr> MenuCommand { get; set; }
17 public DisplayFlags DisplayFlags { get; set; }
19 public MENUITEMINFO CreateInfo(uint idCmdFirst)
21 var mii = new MENUITEMINFO();
22 mii.cbSize = (uint)Marshal.SizeOf(mii);
23 mii.fMask = MIIM.MIIM_ID | MIIM.MIIM_TYPE | MIIM.MIIM_STATE;
24 mii.wID = idCmdFirst + MenuDisplayId;
25 mii.fType = MFT.MFT_STRING;
26 mii.dwTypeData = MenuText;
27 mii.fState = MFS.MFS_ENABLED;