From 5ea825a8d92564034e1fa5a95a53b05ec41a211f Mon Sep 17 00:00:00 2001 From: "Valeriano A.R" Date: Tue, 1 Aug 2023 14:57:49 +0200 Subject: [PATCH] Remove unnecessary code in MessageBoxEx. --- UI/MessageBoxEx.cs | 112 +++------------------------------------------ 1 file changed, 6 insertions(+), 106 deletions(-) diff --git a/UI/MessageBoxEx.cs b/UI/MessageBoxEx.cs index 2c804e6..531c00a 100644 --- a/UI/MessageBoxEx.cs +++ b/UI/MessageBoxEx.cs @@ -1,16 +1,13 @@ using System; using System.Drawing; using System.Runtime.InteropServices; -using System.Text; using System.Windows.Forms; namespace CsvView.UI { - public class MessageBoxEx + public static class MessageBoxEx { private static IWin32Window _owner; - private static HookProc _hookProc; - private static IntPtr _hHook; public static DialogResult Show(string text) { @@ -90,124 +87,28 @@ namespace CsvView.UI return MessageBox.Show(owner, text, caption, buttons, icon, defButton, options); } - - public delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam); - - public delegate void TimerProc(IntPtr hWnd, uint uMsg, UIntPtr nIDEvent, uint dwTime); - - public const int WH_CALLWNDPROCRET = 12; - - public enum CbtHookAction : int - { - HCBT_MOVESIZE = 0, - HCBT_MINMAX = 1, - HCBT_QS = 2, - HCBT_CREATEWND = 3, - HCBT_DESTROYWND = 4, - HCBT_ACTIVATE = 5, - HCBT_CLICKSKIPPED = 6, - HCBT_KEYSKIPPED = 7, - HCBT_SYSCOMMAND = 8, - HCBT_SETFOCUS = 9 - } - [DllImport("kernel32.dll")] - private static extern uint GetCurrentThreadId(); - + [DllImport("user32.dll")] private static extern bool GetWindowRect(IntPtr hWnd, ref Rectangle lpRect); [DllImport("user32.dll")] private static extern int MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); - [DllImport("User32.dll")] - public static extern UIntPtr SetTimer(IntPtr hWnd, UIntPtr nIDEvent, uint uElapse, TimerProc lpTimerFunc); - - [DllImport("User32.dll")] - public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam); - - [DllImport("user32.dll")] - public static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hInstance, int threadId); - - [DllImport("user32.dll")] - public static extern int UnhookWindowsHookEx(IntPtr idHook); - - [DllImport("user32.dll")] - public static extern IntPtr CallNextHookEx(IntPtr idHook, int nCode, IntPtr wParam, IntPtr lParam); - - [DllImport("user32.dll")] - public static extern int GetWindowTextLength(IntPtr hWnd); - - [DllImport("user32.dll")] - public static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int maxLength); - - [DllImport("user32.dll")] - public static extern int EndDialog(IntPtr hDlg, IntPtr nResult); - - [StructLayout(LayoutKind.Sequential)] - public struct CWPRETSTRUCT - { - public IntPtr lResult; - public IntPtr lParam; - public IntPtr wParam; - public uint message; - public IntPtr hwnd; - }; - - static MessageBoxEx() - { - _hookProc = new HookProc(MessageBoxHookProc); - _hHook = IntPtr.Zero; - } - private static void Initialize() { - if (_hHook != IntPtr.Zero) - { - throw new NotSupportedException("multiple calls are not supported"); - } - if (_owner != null) - { - _hHook = SetWindowsHookEx(WH_CALLWNDPROCRET, _hookProc, IntPtr.Zero, (int)GetCurrentThreadId()); - } } - - private static IntPtr MessageBoxHookProc(int nCode, IntPtr wParam, IntPtr lParam) - { - if (nCode < 0) - { - return CallNextHookEx(_hHook, nCode, wParam, lParam); - } - - CWPRETSTRUCT msg = (CWPRETSTRUCT)Marshal.PtrToStructure(lParam, typeof(CWPRETSTRUCT)); - IntPtr hook = _hHook; - - if (msg.message == (int)CbtHookAction.HCBT_ACTIVATE) - { - try - { - CenterWindow(msg.hwnd); - } - finally - { - UnhookWindowsHookEx(_hHook); - _hHook = IntPtr.Zero; - } - } - - return CallNextHookEx(hook, nCode, wParam, lParam); - } - + private static void CenterWindow(IntPtr hChildWnd) { Rectangle recChild = new Rectangle(0, 0, 0, 0); - bool success = GetWindowRect(hChildWnd, ref recChild); + GetWindowRect(hChildWnd, ref recChild); int width = recChild.Width - recChild.X; int height = recChild.Height - recChild.Y; Rectangle recParent = new Rectangle(0, 0, 0, 0); - success = GetWindowRect(_owner.Handle, ref recParent); + GetWindowRect(_owner.Handle, ref recParent); Point ptCenter = new Point(0, 0); ptCenter.X = recParent.X + ((recParent.Width - recParent.X) / 2); @@ -221,8 +122,7 @@ namespace CsvView.UI ptStart.X = (ptStart.X < 0) ? 0 : ptStart.X; ptStart.Y = (ptStart.Y < 0) ? 0 : ptStart.Y; - int result = MoveWindow(hChildWnd, ptStart.X, ptStart.Y, width, - height, false); + MoveWindow(hChildWnd, ptStart.X, ptStart.Y, width, height, false); } }