Beispiel #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);
        }
Beispiel #2
0
        internal static IntPtr FindPluginMenuItem(uint commandId, out uint index)
        {
            IntPtr pluginMenuHandle = ClassNPPTools.getPluginMenuHandle();

            index = 0u;
            if (pluginMenuHandle == IntPtr.Zero)
            {
                return(IntPtr.Zero);
            }
            uint num = 0u;

            while ((ulong)num < (ulong)((long)Win32Extendet.GetMenuItemCount(pluginMenuHandle)))
            {
                IntPtr subMenu = Win32Extendet.GetSubMenu(pluginMenuHandle, num, true);
                if (!(subMenu == IntPtr.Zero))
                {
                    uint num2 = 0u;
                    while ((ulong)num2 < (ulong)((long)Win32Extendet.GetMenuItemCount(subMenu)))
                    {
                        if (Win32Extendet.GetMenuItemId(subMenu, num2, true) == commandId)
                        {
                            index = num2;
                            return(subMenu);
                        }
                        num2 += 1u;
                    }
                }
                num += 1u;
            }
            return(IntPtr.Zero);
        }
Beispiel #3
0
        public static string GetClassName(IntPtr hWnd)
        {
            StringBuilder stringBuilder = new StringBuilder(256);

            Win32Extendet.GetClassName(hWnd, stringBuilder, stringBuilder.Capacity);
            return(stringBuilder.ToString());
        }
Beispiel #4
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);
 }
Beispiel #5
0
 public static IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr dwNewLong)
 {
     if (IntPtr.Size == 8)
     {
         return(Win32Extendet.SetWindowLongPtr64(hWnd, nIndex, dwNewLong));
     }
     return(new IntPtr(Win32Extendet.SetWindowLong(hWnd, nIndex, dwNewLong.ToInt32())));
 }
Beispiel #6
0
 public static IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex)
 {
     if (IntPtr.Size == 8)
     {
         return(Win32Extendet.GetWindowLongPtr64(hWnd, nIndex));
     }
     return(new IntPtr(Win32Extendet.GetWindowLong(hWnd, nIndex)));
 }
Beispiel #7
0
        public static string GetErrorMessage(int errorCode)
        {
            int    nSize  = 255;
            string result = "";

            if (Win32Extendet.FormatMessage(4864, 0, errorCode, 0, ref result, nSize, 0) == 0)
            {
                return(null);
            }
            return(result);
        }
Beispiel #8
0
        public static string GetWindowText(IntPtr hWnd)
        {
            int windowTextLength = Win32Extendet.GetWindowTextLength(hWnd);

            if (windowTextLength <= 0)
            {
                return("");
            }
            StringBuilder stringBuilder = new StringBuilder(windowTextLength + 1);

            Win32Extendet.GetWindowText(hWnd, stringBuilder, stringBuilder.Capacity);
            return(stringBuilder.ToString());
        }
Beispiel #9
0
        public static bool enablePluginMenuFunction(int myMenuIndex, bool enable)
        {
            bool   result = false;
            uint   uIDEnableItem;
            IntPtr intPtr = ClassNPPTools.FindPluginMenuItem((uint)PluginBase._funcItems.Items[myMenuIndex]._cmdID, out uIDEnableItem);

            if (intPtr != IntPtr.Zero)
            {
                uint uEnable = 1024u;
                if (!enable)
                {
                    uEnable = 1025u;
                }
                result = Win32Extendet.EnableMenuItem(intPtr, uIDEnableItem, uEnable);
            }
            return(result);
        }
Beispiel #10
0
        public static List <IntPtr> GetChildWindows(IntPtr parent)
        {
            List <IntPtr> list  = new List <IntPtr>();
            GCHandle      value = GCHandle.Alloc(list);

            try
            {
                Win32Extendet.EnumWindowsProc lpEnumFunc = new Win32Extendet.EnumWindowsProc(Win32Extendet.GetChildWindowsCallback);
                Win32Extendet.EnumChildWindows(parent, lpEnumFunc, GCHandle.ToIntPtr(value));
            }
            finally
            {
                if (value.IsAllocated)
                {
                    value.Free();
                }
            }
            return(list);
        }
Beispiel #11
0
        public static bool EnumChildWindows(IntPtr hwndParent, Predicate <IntPtr> callback)
        {
            bool result = false;

            GCHandle value = GCHandle.Alloc(callback);

            try
            {
                Win32Extendet.EnumWindowsProc lpEnumFunc = new Win32Extendet.EnumWindowsProc(Win32Extendet.EnumChildWindowsCallback);
                Win32Extendet.EnumChildWindows(hwndParent, lpEnumFunc, GCHandle.ToIntPtr(value));
            }
            finally
            {
                if (value.IsAllocated)
                {
                    value.Free();
                }
            }
            return(result);
        }