mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-06-07 09:28:03 +08:00

* Add test proj, refactor proj with filters, and move single remap function to a separate header * Moved all methods to header files * remove more unused commented code * Reverted sln file * Fixed sln file * Added interface wrapping SendInput calls * fixed formatting * Created test mock class * Added keyboard input logic * Fixed compilation errors and added nuget reference to CppWinRT * Added tests for single key remapping * Refactored code for adding shortcut remap tests * Separated test classes * Fixed tests in release mode * Added more tests * Resolved comments
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
#pragma once
|
|
#include <keyboardmanager/common/InputInterface.h>
|
|
#include <vector>
|
|
#include <functional>
|
|
#include <interface/lowlevel_keyboard_event_data.h>
|
|
|
|
// Class for mocked keyboard input
|
|
class MockedInput :
|
|
public InputInterface
|
|
{
|
|
private:
|
|
// Stores the states for all the keys - false for key up, and true for key down
|
|
std::vector<bool> keyboardState;
|
|
|
|
// Function to be executed as a low level hook. By default it is nullptr so the hook is skipped
|
|
std::function<intptr_t(LowlevelKeyboardEvent*)> hookProc;
|
|
|
|
public:
|
|
MockedInput()
|
|
{
|
|
keyboardState.resize(256, false);
|
|
}
|
|
|
|
// Set the keyboard hook procedure to be tested
|
|
void SetHookProc(std::function<intptr_t(LowlevelKeyboardEvent*)> hookProcedure);
|
|
|
|
// Function to simulate keyboard input
|
|
UINT SendVirtualInput(UINT cInputs, LPINPUT pInputs, int cbSize);
|
|
|
|
// Function to simulate keyboard hook behavior
|
|
intptr_t MockedKeyboardHook(LowlevelKeyboardEvent* data);
|
|
|
|
// Function to get the state of a particular key
|
|
bool GetVirtualKeyState(int key);
|
|
|
|
// Function to reset the mocked keyboard state
|
|
void ResetKeyboardState();
|
|
};
|