Example #1
0
 private bool EventWindowIsValid(int idChild, Win32.OBJID idObject, IntPtr hwnd)
 {
     return(idChild == Win32.CHILDID_SELF && idObject == Win32.OBJID.OBJID_WINDOW && hwnd != IntPtr.Zero);
 }
Example #2
0
        private void WindowHook(IntPtr hWinEventHook, Win32.EVENT_CONSTANTS eventType, IntPtr hwnd, Win32.OBJID idObject, int idChild, uint dwEventThread, uint dwmsEventTime)
        {
            if (EventWindowIsValid(idChild, idObject, hwnd))
            {
                switch (eventType)
                {
                case Win32.EVENT_CONSTANTS.EVENT_OBJECT_SHOW:
                    RegisterWindow(hwnd);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_OBJECT_DESTROY:
                    UnregisterWindow(hwnd);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_OBJECT_CLOAKED:
                    UpdateWindow(hwnd, WindowUpdateType.Hide);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_OBJECT_UNCLOAKED:
                    UpdateWindow(hwnd, WindowUpdateType.Show);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_SYSTEM_MINIMIZESTART:
                    UpdateWindow(hwnd, WindowUpdateType.MinimizeStart);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_SYSTEM_MINIMIZEEND:
                    UpdateWindow(hwnd, WindowUpdateType.MinimizeEnd);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_SYSTEM_FOREGROUND:
                    UpdateWindow(hwnd, WindowUpdateType.Foreground);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_OBJECT_NAMECHANGE:
                    UpdateWindow(hwnd, WindowUpdateType.TitleChange);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_SYSTEM_MOVESIZESTART:
                    StartWindowMove(hwnd);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_SYSTEM_MOVESIZEEND:
                    EndWindowMove(hwnd);
                    break;

                case Win32.EVENT_CONSTANTS.EVENT_OBJECT_LOCATIONCHANGE:
                    WindowMove(hwnd);
                    break;
                }
            }
        }