- Rewrite Timers, nothing is using it except a bogus system timer for raw input threa...
[reactos.git] / reactos / subsystems / win32 / win32k / include / input.h
1 #ifndef _WIN32K_INPUT_H
2 #define _WIN32K_INPUT_H
3
4 #include <internal/kbd.h>
5
6 typedef struct _KBL
7 {
8 LIST_ENTRY List;
9 DWORD Flags;
10 WCHAR Name[KL_NAMELENGTH]; // used w GetKeyboardLayoutName same as wszKLID.
11 struct _KBDTABLES* KBTables; // KBDTABLES in ntoskrnl/include/internal/kbd.h
12 HANDLE hModule;
13 ULONG RefCount;
14 HKL hkl;
15 DWORD klid; // Low word - language id. High word - device id.
16 } KBL, *PKBL;
17
18 #define KBL_UNLOAD 1
19 #define KBL_PRELOAD 2
20 #define KBL_RESET 4
21
22 NTSTATUS FASTCALL
23 InitInputImpl(VOID);
24 NTSTATUS FASTCALL
25 InitKeyboardImpl(VOID);
26 PUSER_MESSAGE_QUEUE W32kGetPrimitiveMessageQueue(VOID);
27 VOID W32kUnregisterPrimitiveMessageQueue(VOID);
28 PKBL W32kGetDefaultKeyLayout(VOID);
29 VOID FASTCALL W32kKeyProcessMessage(LPMSG Msg, PKBDTABLES KeyLayout, BYTE Prefix);
30 BOOL FASTCALL IntBlockInput(PTHREADINFO W32Thread, BOOL BlockIt);
31 BOOL FASTCALL IntMouseInput(MOUSEINPUT *mi);
32 BOOL FASTCALL IntKeyboardInput(KEYBDINPUT *ki);
33
34 BOOL UserInitDefaultKeyboardLayout();
35 PKBL UserHklToKbl(HKL hKl);
36
37 #define ThreadHasInputAccess(W32Thread) \
38 (TRUE)
39
40 extern PTHREADINFO ptiRawInput;
41
42 #endif /* _WIN32K_INPUT_H */