mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-03 17:56:44 +02:00
46 lines
1.0 KiB
C++
46 lines
1.0 KiB
C++
#pragma once
|
|
|
|
using namespace System::Threading;
|
|
using namespace System::Collections::Generic;
|
|
|
|
namespace interop
|
|
{
|
|
public
|
|
ref struct KeyboardEvent
|
|
{
|
|
WPARAM message;
|
|
int key;
|
|
};
|
|
|
|
public
|
|
delegate void KeyboardEventCallback(KeyboardEvent ^ ev);
|
|
public
|
|
delegate bool IsActiveCallback();
|
|
public
|
|
delegate bool FilterKeyboardEvent(KeyboardEvent ^ ev);
|
|
|
|
public
|
|
ref class KeyboardHook
|
|
{
|
|
public:
|
|
KeyboardHook(
|
|
KeyboardEventCallback ^ keyboardEventCallback,
|
|
IsActiveCallback ^ isActiveCallback,
|
|
FilterKeyboardEvent ^ filterKeyboardEvent);
|
|
~KeyboardHook();
|
|
|
|
void Start();
|
|
|
|
private:
|
|
delegate LRESULT HookProcDelegate(int nCode, WPARAM wParam, LPARAM lParam);
|
|
KeyboardEventCallback ^ keyboardEventCallback;
|
|
IsActiveCallback ^ isActiveCallback;
|
|
FilterKeyboardEvent ^ filterKeyboardEvent;
|
|
HHOOK hookHandle;
|
|
HookProcDelegate ^ hookProc;
|
|
|
|
LRESULT __clrcall HookProc(int nCode, WPARAM wParam, LPARAM lParam);
|
|
};
|
|
|
|
}
|