private static void WindowEventCallback(IntPtr hWinEventHook, User32.WindowEventTypes iEvent, IntPtr hWnd, int idObject, int idChild, int dwEventThread, int dwmsEventTime) { if (hWnd == WindowObserver.windowHandle) { callback(iEvent); //Debug.WriteLine("Event on BDO window: " + iEvent.ToString("X4")); } //Debug.WriteLine("Event: " + iEvent.ToString("X4")); }
private void ObservedWindowEvent(User32.WindowEventTypes windowEvent) { switch (windowEvent) { case User32.WindowEventTypes.EVENT_OBJECT_FOCUS: { _overlay.Update(GetWindowArea()); _overlay.Show(); MyApp.minimized = false; } break; case User32.WindowEventTypes.EVENT_OBJECT_HIDE: { MyApp.minimized = true; _overlay.Hide(); _notifier.Notify("Info", "BDMT has been minimized!"); } break; case User32.WindowEventTypes.EVENT_OBJECT_LOCATIONCHANGE: { _overlay.Update(GetWindowArea()); } break; case User32.WindowEventTypes.EVENT_OBJECT_SHOW: { } break; case User32.WindowEventTypes.EVENT_SYSTEM_FOREGROUND: { } break; case 0: { _overlay.Hide(); } break; default: break; } }