--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Pithos.ShellExtensions.Menus
+{
+ internal class MenuItem
+ {
+ public string MenuText { get; set; }
+ public string Verb { get; set; }
+ public string VerbCanonicalName { get; set; }
+ public string VerbHelpText { get; set; }
+ public uint MenuDisplayId { get; set; }
+ public Action<IntPtr> MenuCommand { get; set; }
+ public DisplayFlags DisplayFlags { get; set; }
+
+ public MENUITEMINFO CreateInfo(uint idCmdFirst)
+ {
+ var mii = new MENUITEMINFO();
+ mii.cbSize = (uint)Marshal.SizeOf(mii);
+ mii.fMask = MIIM.MIIM_ID | MIIM.MIIM_TYPE | MIIM.MIIM_STATE;
+ mii.wID = idCmdFirst + MenuDisplayId;
+ mii.fType = MFT.MFT_STRING;
+ mii.dwTypeData = MenuText;
+ mii.fState = MFS.MFS_ENABLED;
+ return mii;
+ }
+ }
+}