BlockStudio.CustomControls.MessageBoxEx.MessageBoxHookProc C# (CSharp) Method

MessageBoxHookProc() private static method

private static MessageBoxHookProc ( int nCode, IntPtr wParam, IntPtr lParam ) : IntPtr
nCode int
wParam System.IntPtr
lParam System.IntPtr
return System.IntPtr
        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);
        }