29 lines
1.1 KiB
C
29 lines
1.1 KiB
C
// Kernel ke input declarations shared by implementation files and kernel clients.
|
|
|
|
#pragma once
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include <ntlite/input.h>
|
|
#include <ntlite/ddi/hal_api.h>
|
|
#include <ntlite/status.h>
|
|
|
|
void KeInputInitialize(const HAL_API* hal);
|
|
|
|
__declspec(dllexport) KSTATUS KeInputRegisterDevice(const char* name, uint32_t flags, uint32_t* outDeviceId);
|
|
__declspec(dllexport) void KeInputSubmitKey(const INPUT_KEY_EVENT* event);
|
|
__declspec(dllexport) void KeInputSubmitMouse(const INPUT_MOUSE_EVENT* event);
|
|
__declspec(dllexport) void KeInputSubmitMouseAbsolute(const INPUT_MOUSE_ABSOLUTE_EVENT* event);
|
|
__declspec(dllexport) void KeInputSubmitMouseAbsoluteScaled(uint32_t rawX, uint32_t rawY, uint32_t maxX, uint32_t maxY, int wheel, uint8_t buttons);
|
|
|
|
INPUT_KEY KeInputKbPoll(void);
|
|
bool KeInputIsKeyDown(INPUT_KEY key);
|
|
INPUT_KEY KeInputReadKey(void);
|
|
char KeInputReadChar(void);
|
|
uint32_t KeInputGetModifiers(void);
|
|
|
|
bool KeInputMousePoll(void);
|
|
bool KeInputMouseRead(int* dx, int* dy, uint8_t* buttons);
|
|
void KeInputMouseGetPosition(int* x, int* y);
|
|
void KeInputMouseSetPosition(int x, int y);
|
|
void KeInputMouseSetBounds(int w, int h);
|