This commit was manufactured by cvs2svn to create branch 'captive'.
[reactos.git] / ntoskrnl / include / internal / kbd.h
diff --git a/ntoskrnl/include/internal/kbd.h b/ntoskrnl/include/internal/kbd.h
new file mode 100644 (file)
index 0000000..559416d
--- /dev/null
@@ -0,0 +1,111 @@
+/* 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