11#define WIN32_NO_STATUS
18#define ROSDATA static __declspec(allocate(".data"))
21#pragma data_seg(".data")
24#define ROSDATA static __attribute__((section(".data")))
30#define KNUMS KBDNUMPAD|KBDSPECIAL
31#define KMEXT KBDEXT|KBDMULTIVK
40 VK_OEM_MINUS, VK_OEM_PLUS,
VK_BACK,
57 'B',
'N',
'M', VK_OEM_COMMA,
106 { 0x10, VK_MEDIA_PREV_TRACK |
KBDEXT },
107 { 0x19, VK_MEDIA_NEXT_TRACK |
KBDEXT },
109 { 0x20, VK_VOLUME_MUTE |
KBDEXT },
110 { 0x21, VK_LAUNCH_APP2 |
KBDEXT },
111 { 0x22, VK_MEDIA_PLAY_PAUSE |
KBDEXT },
112 { 0x24, VK_MEDIA_STOP |
KBDEXT },
113 { 0x2E, VK_VOLUME_DOWN |
KBDEXT },
114 { 0x30, VK_VOLUME_UP |
KBDEXT },
115 { 0x32, VK_BROWSER_HOME |
KBDEXT },
133 { 0x65, VK_BROWSER_SEARCH |
KBDEXT },
134 { 0x66, VK_BROWSER_FAVORITES |
KBDEXT },
135 { 0x67, VK_BROWSER_REFRESH |
KBDEXT },
136 { 0x68, VK_BROWSER_STOP |
KBDEXT },
137 { 0x69, VK_BROWSER_FORWARD |
KBDEXT },
138 { 0x6A, VK_BROWSER_BACK |
KBDEXT },
139 { 0x6B, VK_LAUNCH_APP1 |
KBDEXT },
140 { 0x6C, VK_LAUNCH_MAIL |
KBDEXT },
141 { 0x6D, VK_LAUNCH_MEDIA_SELECT |
KBDEXT },
167 {
'1', 0, {
':',
'1' } },
168 {
'2',
CAPLOK, {0x0571, 0x0541} },
169 {
'3',
CAPLOK, {0x0575, 0x0545} },
170 {
'4', 0, {0x055b,
'3' } },
171 {
'5', 0, {
',',
'4' } },
172 {
'6', 0, {
'-',
'9' } },
173 {
'7', 0, {
'.', 0x0587} },
174 {
'8', 0, {0x00ab,
'(' } },
175 {
'9', 0, {0x00bb,
')' } },
176 {
'0',
CAPLOK, {0x0585, 0x0555} },
179 {
'Q',
CAPLOK, {0x056d, 0x053d} },
180 {
'W',
CAPLOK, {0x0552, 0x0582} },
181 {
'E',
CAPLOK, {0x0567, 0x0537} },
182 {
'R',
CAPLOK, {0x0580, 0x0550} },
183 {
'T',
CAPLOK, {0x057f, 0x054f} },
184 {
'Y',
CAPLOK, {0x0565, 0x0535} },
185 {
'U',
CAPLOK, {0x0568, 0x0538} },
186 {
'I',
CAPLOK, {0x056b, 0x053b} },
187 {
'O',
CAPLOK, {0x0578, 0x0548} },
188 {
'P',
CAPLOK, {0x057a, 0x054a} },
192 {
'A',
CAPLOK, {0x0561, 0x0531} },
193 {
'S',
CAPLOK, {0x057d, 0x054d} },
194 {
'D',
CAPLOK, {0x0564, 0x0534} },
195 {
'F',
CAPLOK, {0x0586, 0x0556} },
196 {
'G',
CAPLOK, {0x0584, 0x0554} },
197 {
'H',
CAPLOK, {0x0570, 0x0540} },
198 {
'J',
CAPLOK, {0x0573, 0x0543} },
199 {
'K',
CAPLOK, {0x056f, 0x053f} },
200 {
'L',
CAPLOK, {0x056c, 0x056c} },
201 { VK_OEM_PLUS,
CAPLOK, {0x0569, 0x0539} },
203 {
'Z',
CAPLOK, {0x0566, 0x0536} },
204 {
'X',
CAPLOK, {0x0581, 0x0551} },
205 {
'C',
CAPLOK, {0x0563, 0x0533} },
206 {
'V',
CAPLOK, {0x057e, 0x054e} },
207 {
'B',
CAPLOK, {0x0562, 0x0532} },
208 {
'N',
CAPLOK, {0x0576, 0x0546} },
209 {
'M',
CAPLOK, {0x0574, 0x0544} },
210 { VK_OEM_COMMA,
CAPLOK, {0x0577, 0x0547} },
211 { VK_OEM_PERIOD,
CAPLOK, {0x0572, 0x0542} },
212 { VK_OEM_MINUS,
CAPLOK, {0x056e, 0x053e} },
213 { VK_OEM_102, 0, {
'\'', 0x055e} },
215 {
VK_TAB, 0, {
'\t',
'\t' } },
216 {
VK_ADD, 0, {
'+',
'+' } },
224 {
VK_BACK, 0, {
'\b',
'\b', 0x007f} },
225 {
VK_ESCAPE, 0, {0x001b, 0x001b, 0x001b} },
228 {
VK_CANCEL, 0, {0x0003, 0x0003, 0x0003} },
246#define vk_master(n,x) { (PVK_TO_WCHARS1)x, n, sizeof(x[0]) }
257 { 0x0e,
L"Backspace" },
262 { 0x36,
L"Right Shift" },
266 { 0x3a,
L"CAPLOK Lock" },
278 { 0x46,
L"Scroll Lock" },
291 { 0x53,
L"Num Del" },
292 { 0x54,
L"Sys Req" },
311 { 0x1c,
L"Num Enter" },
312 { 0x1d,
L"Right Control" },
314 { 0x37,
L"Prnt Scrn" },
315 { 0x38,
L"Right Alt" },
316 { 0x45,
L"Num Lock" },
320 { 0x49,
L"Page Up" },
325 { 0x51,
L"Page Down" },
328 { 0x54,
L"<ReactOS>" },
330 { 0x5b,
L"Left <ReactOS>" },
331 { 0x5c,
L"Right <ReactOS>" },
332 { 0x5d,
L"Application" },
ROSDATA VSC_LPWSTR extended_key_names[]
ROSDATA USHORT scancode_to_vk[]
ROSDATA VK_TO_WCHARS1 keypad_numbers[]
ROSDATA MODIFIERS modifier_bits
ROSDATA VSC_LPWSTR key_names[]
ROSDATA VSC_VK extcode0_to_vk[]
ROSDATA VK_TO_WCHAR_TABLE vk_to_wchar_master_table[]
ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[]
ROSDATA VK_TO_WCHARS2 key_to_chars_2mod[]
ROSDATA VK_TO_BIT modifier_keys[]
ROSDATA VSC_VK extcode1_to_vk[]
ROSDATA KBDTABLES keyboard_layout_table
PKBDTABLES WINAPI KbdLayerDescriptor()