示例#1
0
        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);
        }
示例#2
0
 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);
 }
示例#3
0
 public static extern bool SetMenuItemInfoW(IntPtr hMenu, uint uItem, bool fByPosition, [In] ref Win32Extendet.MENUITEMINFO lpmii);