C# Programming
02-11-2010, 12:52 AM
Hi !
I'm working shell context menu on 64 pc.
I rebuild app under x64 pc.
I want add menu item to windows context menu.Registery is OK and windows explorer find my dll.
But InsertMenuItem WinAPI function not working!
MENUITEMINFO mii = new MENUITEMINFO();
mii.cbSize =(uint)Marshal.SizeOf(typeof(MENUITEMINFO));// 0x30;
mii.fMask = (uint)MIIM.TYPE | (uint)MIIM.STATE |(uint)MIIM.SUBMENU;
mii.fType =(uint) MF.STRING;
mii.wID = idCmdFirst + num;
mii.dwTypeData = "My menu text";
mii.fState =(uint)MF.ENABLED;
mii.cch = (uint)mii.dwTypeData.Length;
InsertMenuItem(hmenu, iMenu+1, true, ref mii);
My defenition :
[DllImport("user32.dll")]
public static extern bool InsertMenuItem(uint hMenu, uint uItem, bool fByPosition,[In] ref MENUITEMINFO lpmii);
[StructLayout(LayoutKind.Sequential)]
public struct MENUITEMINFO
{
public uint cbSize;
public uint fMask;
public uint fType;
public uint fState;
public int wID;
public int hSubMenu;
public int hbmpChecked;
public int hbmpUnchecked;
public int dwItemData;
public String dwTypeData;
public uint cch;
public int hbmpItem;
}
Please help me. (I know writing shell menu under .net is not good,but i very want see it).
Thanks.We are haven't bug,just temporarily undecided problems.
I'm working shell context menu on 64 pc.
I rebuild app under x64 pc.
I want add menu item to windows context menu.Registery is OK and windows explorer find my dll.
But InsertMenuItem WinAPI function not working!
MENUITEMINFO mii = new MENUITEMINFO();
mii.cbSize =(uint)Marshal.SizeOf(typeof(MENUITEMINFO));// 0x30;
mii.fMask = (uint)MIIM.TYPE | (uint)MIIM.STATE |(uint)MIIM.SUBMENU;
mii.fType =(uint) MF.STRING;
mii.wID = idCmdFirst + num;
mii.dwTypeData = "My menu text";
mii.fState =(uint)MF.ENABLED;
mii.cch = (uint)mii.dwTypeData.Length;
InsertMenuItem(hmenu, iMenu+1, true, ref mii);
My defenition :
[DllImport("user32.dll")]
public static extern bool InsertMenuItem(uint hMenu, uint uItem, bool fByPosition,[In] ref MENUITEMINFO lpmii);
[StructLayout(LayoutKind.Sequential)]
public struct MENUITEMINFO
{
public uint cbSize;
public uint fMask;
public uint fType;
public uint fState;
public int wID;
public int hSubMenu;
public int hbmpChecked;
public int hbmpUnchecked;
public int dwItemData;
public String dwTypeData;
public uint cch;
public int hbmpItem;
}
Please help me. (I know writing shell menu under .net is not good,but i very want see it).
Thanks.We are haven't bug,just temporarily undecided problems.