/ src / common / interop / HotkeyManager.h
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  }