public static string GetMenuItemString(IntPtr hMenu, uint uItem, bool fByPosition) { Win32Extendet.MENUITEMINFO mENUITEMINFO = default(Win32Extendet.MENUITEMINFO); mENUITEMINFO.cbSize = Win32Extendet.MENUITEMINFO.Size; mENUITEMINFO.fMask = 256u; Win32Extendet.GetMenuItemInfoW(hMenu, uItem, fByPosition, ref mENUITEMINFO); string result = null; if ((mENUITEMINFO.fType & 2048u) == 0u) { mENUITEMINFO.dwTypeData = IntPtr.Zero; mENUITEMINFO.cch = 0u; mENUITEMINFO.fMask = 64u; Win32Extendet.GetMenuItemInfoW(hMenu, uItem, fByPosition, ref mENUITEMINFO); int cch = (int)mENUITEMINFO.cch; mENUITEMINFO.cch += 1u; IntPtr intPtr = Marshal.AllocHGlobal((cch + 1) * 2); mENUITEMINFO.dwTypeData = intPtr; mENUITEMINFO.fMask = 320u; Win32Extendet.GetMenuItemInfoW(hMenu, uItem, fByPosition, ref mENUITEMINFO); result = Marshal.PtrToStringUni(intPtr, cch); Marshal.FreeHGlobal(intPtr); } return(result); }
public static uint GetMenuItemId(IntPtr hMenu, uint uItem, bool fByPosition) { Win32Extendet.MENUITEMINFO mENUITEMINFO = default(Win32Extendet.MENUITEMINFO); mENUITEMINFO.cbSize = Win32Extendet.MENUITEMINFO.Size; mENUITEMINFO.fMask = 2u; Win32Extendet.GetMenuItemInfoW(hMenu, uItem, fByPosition, ref mENUITEMINFO); return(mENUITEMINFO.wID); }
public static extern bool SetMenuItemInfoW(IntPtr hMenu, uint uItem, bool fByPosition, [In] ref Win32Extendet.MENUITEMINFO lpmii);