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); }
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); }
public static string GetClassName(IntPtr hWnd) { StringBuilder stringBuilder = new StringBuilder(256); Win32Extendet.GetClassName(hWnd, stringBuilder, stringBuilder.Capacity); return(stringBuilder.ToString()); }
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 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()))); }
public static IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex) { if (IntPtr.Size == 8) { return(Win32Extendet.GetWindowLongPtr64(hWnd, nIndex)); } return(new IntPtr(Win32Extendet.GetWindowLong(hWnd, nIndex))); }
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); }
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()); }
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); }
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); }
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); }