mirror of
https://github.com/reactos/reactos.git
synced 2024-09-11 21:34:09 +00:00
116 lines
2.3 KiB
C
116 lines
2.3 KiB
C
#define __KBD_H
|
|
|
|
#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[];
|
|
} 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;
|
|
|
|
typedef WCHAR *DEADKEY_LPWSTR;
|
|
|
|
#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)
|
|
TYPEDEF_LIGATURE(2)
|
|
TYPEDEF_LIGATURE(3)
|
|
TYPEDEF_LIGATURE(4)
|
|
TYPEDEF_LIGATURE(5)
|
|
|
|
#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
|
|
|
|
#define VK_ABNT_C1 0xC1
|
|
#define VK_ABNT_C2 0xC2
|
|
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif//__KBD_H
|