--- /dev/null
+/* ReactOS System Header -- kbd.h */
+#define __KBD_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ typedef struct _VK_TO_BIT {
+ BYTE Vk;
+ BYTE ModBits;
+ } VK_TO_BIT, *PVK_TO_BIT;
+
+ typedef struct _MODIFIERS {
+ PVK_TO_BIT pVkToBit;
+ WORD wMaxModBits;
+ BYTE ModNumber[1];
+ } MODIFIERS, *PMODIFIERS;
+
+#define TYPEDEF_VK_TO_WCHARS(i) \
+ typedef struct _VK_TO_WCHARS ## i { \
+ BYTE VirtualKey; \
+ BYTE Attributes; \
+ WCHAR wch[i]; \
+ } VK_TO_WCHARS ## i, *PVK_TO_WCHARS ## i;
+
+ TYPEDEF_VK_TO_WCHARS(1)
+ TYPEDEF_VK_TO_WCHARS(2)
+ TYPEDEF_VK_TO_WCHARS(3)
+ TYPEDEF_VK_TO_WCHARS(4)
+ TYPEDEF_VK_TO_WCHARS(5)
+ TYPEDEF_VK_TO_WCHARS(6)
+ TYPEDEF_VK_TO_WCHARS(7)
+ TYPEDEF_VK_TO_WCHARS(8)
+ TYPEDEF_VK_TO_WCHARS(9)
+ TYPEDEF_VK_TO_WCHARS(10)
+
+ typedef struct _VK_TO_WCHAR_TABLE {
+ PVK_TO_WCHARS1 pVkToWchars;
+ BYTE nModifications;
+ BYTE cbSize;
+ } VK_TO_WCHAR_TABLE, *PVK_TO_WCHAR_TABLE;
+
+ typedef struct _DEADKEY {
+ DWORD dwBoth;
+ WCHAR wchComposed;
+ USHORT uFlags;
+ } DEADKEY, *PDEADKEY;
+
+#define DKF_DEAD 1
+
+ typedef struct _VSC_LPWSTR {
+ BYTE vsc;
+ LPWSTR pwsz;
+ } VSC_LPWSTR, *PVSC_LPWSTR;
+
+ typedef struct _VSC_VK {
+ BYTE Vsc;
+ USHORT Vk;
+ } VSC_VK, *PVSC_VK;
+
+#define TYPEDEF_LIGATURE(i) \
+typedef struct _LIGATURE ## i { \
+ BYTE VirtualKey; \
+ WORD ModificationNumber; \
+ WCHAR wch[i]; \
+} LIGATURE ## i, *PLIGATURE ## i;
+
+ TYPEDEF_LIGATURE(1)
+
+#define KBD_VERSION 1
+#define GET_KBD_VERSION(p) (HIWORD((p)->fLocalFlags))
+#define KLLF_ALTGR 1
+#define KLLF_SHIFTLOCK 2
+#define KLLF_LRM_RLM 4
+
+ typedef struct _KBDTABLES {
+ PMODIFIERS pCharModifiers;
+ PVK_TO_WCHAR_TABLE pVkToWcharTable;
+ PDEADKEY pDeadKey;
+ VSC_LPWSTR *pKeyNames;
+ VSC_LPWSTR *pKeyNamesExt;
+ LPWSTR *pKeyNamesDead;
+ USHORT *pusVSCtoVK;
+ BYTE bMaxVSCtoVK;
+ PVSC_VK pVSCtoVK_E0;
+ PVSC_VK pVSCtoVK_E1;
+ DWORD fLocalFlags;
+ BYTE nLgMaxd;
+ BYTE cbLgEntry;
+ PLIGATURE1 pLigature;
+ } KBDTABLES, *PKBDTABLES;
+
+ /* Constants that help table decoding */
+#define WCH_NONE 0xf000
+#define WCH_DEAD 0xf001
+#define WCH_LGTR 0xf002
+
+#define CAPSLOK 1
+#define SGCAPS 2
+#define CAPLOKALTGR 4
+#define KANALOK 8
+#define GRPSELTAP 0x80
+
+
+#ifdef __cplusplus
+};
+#endif//__KBD_H