Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenkbd.h
Go to the documentation of this file.
00001 #define __KBD_H 00002 00003 #ifdef __cplusplus 00004 extern "C" { 00005 #endif 00006 00007 /* Virtual key flags */ 00008 #define KBDEXT 0x100 /* Extended key code */ 00009 #define KBDMULTIVK 0x200 /* Multi-key */ 00010 #define KBDSPECIAL 0x400 /* Special key */ 00011 #define KBDNUMPAD 0x800 /* Number-pad */ 00012 00013 /* Modifier bits */ 00014 #define KBDSHIFT 0x001 /* Shift modifier */ 00015 #define KBDCTRL 0x002 /* Ctrl modifier */ 00016 #define KBDALT 0x004 /* Alt modifier */ 00017 00018 /* Invalid shift */ 00019 #define SHFT_INVALID 0x0F 00020 00021 typedef struct _VK_TO_BIT { 00022 BYTE Vk; 00023 BYTE ModBits; 00024 } VK_TO_BIT, *PVK_TO_BIT; 00025 00026 typedef struct _MODIFIERS { 00027 PVK_TO_BIT pVkToBit; 00028 WORD wMaxModBits; 00029 BYTE ModNumber[]; 00030 } MODIFIERS, *PMODIFIERS; 00031 00032 #define TYPEDEF_VK_TO_WCHARS(i) \ 00033 typedef struct _VK_TO_WCHARS ## i { \ 00034 BYTE VirtualKey; \ 00035 BYTE Attributes; \ 00036 WCHAR wch[i]; \ 00037 } VK_TO_WCHARS ## i, *PVK_TO_WCHARS ## i; 00038 00039 TYPEDEF_VK_TO_WCHARS(1) 00040 TYPEDEF_VK_TO_WCHARS(2) 00041 TYPEDEF_VK_TO_WCHARS(3) 00042 TYPEDEF_VK_TO_WCHARS(4) 00043 TYPEDEF_VK_TO_WCHARS(5) 00044 TYPEDEF_VK_TO_WCHARS(6) 00045 TYPEDEF_VK_TO_WCHARS(7) 00046 TYPEDEF_VK_TO_WCHARS(8) 00047 TYPEDEF_VK_TO_WCHARS(9) 00048 TYPEDEF_VK_TO_WCHARS(10) 00049 00050 typedef struct _VK_TO_WCHAR_TABLE { 00051 PVK_TO_WCHARS1 pVkToWchars; 00052 BYTE nModifications; 00053 BYTE cbSize; 00054 } VK_TO_WCHAR_TABLE, *PVK_TO_WCHAR_TABLE; 00055 00056 typedef struct _DEADKEY { 00057 DWORD dwBoth; 00058 WCHAR wchComposed; 00059 USHORT uFlags; 00060 } DEADKEY, *PDEADKEY; 00061 00062 typedef WCHAR *DEADKEY_LPWSTR; 00063 00064 #define DKF_DEAD 1 00065 00066 typedef struct _VSC_LPWSTR { 00067 BYTE vsc; 00068 LPWSTR pwsz; 00069 } VSC_LPWSTR, *PVSC_LPWSTR; 00070 00071 typedef struct _VSC_VK { 00072 BYTE Vsc; 00073 USHORT Vk; 00074 } VSC_VK, *PVSC_VK; 00075 00076 #define TYPEDEF_LIGATURE(i) \ 00077 typedef struct _LIGATURE ## i { \ 00078 BYTE VirtualKey; \ 00079 WORD ModificationNumber; \ 00080 WCHAR wch[i]; \ 00081 } LIGATURE ## i, *PLIGATURE ## i; 00082 00083 TYPEDEF_LIGATURE(1) 00084 TYPEDEF_LIGATURE(2) 00085 TYPEDEF_LIGATURE(3) 00086 TYPEDEF_LIGATURE(4) 00087 TYPEDEF_LIGATURE(5) 00088 00089 #define KBD_VERSION 1 00090 #define GET_KBD_VERSION(p) (HIWORD((p)->fLocalFlags)) 00091 #define KLLF_ALTGR 0x1 00092 #define KLLF_SHIFTLOCK 0x2 00093 #define KLLF_LRM_RLM 0x4 00094 00095 typedef struct _KBDTABLES { 00096 PMODIFIERS pCharModifiers; 00097 PVK_TO_WCHAR_TABLE pVkToWcharTable; 00098 PDEADKEY pDeadKey; 00099 VSC_LPWSTR *pKeyNames; 00100 VSC_LPWSTR *pKeyNamesExt; 00101 LPWSTR *pKeyNamesDead; 00102 USHORT *pusVSCtoVK; 00103 BYTE bMaxVSCtoVK; 00104 PVSC_VK pVSCtoVK_E0; 00105 PVSC_VK pVSCtoVK_E1; 00106 DWORD fLocaleFlags; 00107 BYTE nLgMaxd; 00108 BYTE cbLgEntry; 00109 PLIGATURE1 pLigature; 00110 } KBDTABLES, *PKBDTABLES; 00111 00112 /* Constants that help table decoding */ 00113 #define WCH_NONE 0xf000 00114 #define WCH_DEAD 0xf001 00115 #define WCH_LGTR 0xf002 00116 00117 /* VK_TO_WCHARS attributes */ 00118 #define CAPLOK 0x01 00119 #define SGCAPS 0x02 00120 #define CAPLOKALTGR 0x04 00121 #define KANALOK 0x08 00122 #define GRPSELTAP 0x80 00123 00124 #define VK_ABNT_C1 0xC1 00125 #define VK_ABNT_C2 0xC2 00126 00127 /* Useful scancodes */ 00128 #define SCANCODE_LSHIFT 0x2A 00129 #define SCANCODE_RSHIFT 0x36 00130 #define SCANCODE_CTRL 0x1D 00131 #define SCANCODE_ALT 0x38 00132 00133 #ifdef __cplusplus 00134 }; 00135 #endif//__KBD_H Generated on Sun May 27 2012 04:30:55 for ReactOS by
1.7.6.1
|