HotkeyManager.h
1 #pragma once 2 #include "HotkeyManager.g.h" 3 4 namespace winrt::PowerToys::Interop::implementation 5 { 6 struct HotkeyManager : HotkeyManagerT<HotkeyManager> 7 { 8 HotkeyManager(); 9 10 uint16_t RegisterHotkey(winrt::PowerToys::Interop::Hotkey const& _hotkey, winrt::PowerToys::Interop::HotkeyCallback const& _callback); 11 void UnregisterHotkey(uint16_t _handle); 12 void Close(); 13 14 private: 15 KeyboardHook keyboardHook{ nullptr }; 16 std::map<uint16_t, HotkeyCallback> hotkeys; 17 Hotkey pressedKeys{ }; 18 KeyboardEventCallback keyboardEventCallback; 19 IsActiveCallback isActiveCallback; 20 FilterKeyboardEvent filterKeyboardCallback; 21 22 void KeyboardEventProc(KeyboardEvent ev); 23 bool IsActiveProc(); 24 bool FilterKeyboardProc(KeyboardEvent ev); 25 uint16_t GetHotkeyHandle(Hotkey hotkey); 26 }; 27 } 28 namespace winrt::PowerToys::Interop::factory_implementation 29 { 30 struct HotkeyManager : HotkeyManagerT<HotkeyManager, implementation::HotkeyManager> 31 { 32 }; 33 }