10#define WIN32_NO_STATUS
17#define ROSDATA static __declspec(allocate(".data"))
20#pragma data_seg(".data")
23#define ROSDATA static __attribute__((section(".data")))
29#define KNUMS KBDNUMPAD|KBDSPECIAL
30#define KMEXT KBDEXT|KBDMULTIVK
39 VK_OEM_MINUS, VK_OEM_PLUS,
VK_BACK,
56 'B',
'K',
'M', VK_OEM_COMMA,
105 { 0x10, VK_MEDIA_PREV_TRACK |
KBDEXT },
106 { 0x19, VK_MEDIA_NEXT_TRACK |
KBDEXT },
108 { 0x20, VK_VOLUME_MUTE |
KBDEXT },
109 { 0x21, VK_LAUNCH_APP2 |
KBDEXT },
110 { 0x22, VK_MEDIA_PLAY_PAUSE |
KBDEXT },
111 { 0x24, VK_MEDIA_STOP |
KBDEXT },
112 { 0x2E, VK_VOLUME_DOWN |
KBDEXT },
113 { 0x30, VK_VOLUME_UP |
KBDEXT },
114 { 0x32, VK_BROWSER_HOME |
KBDEXT },
132 { 0x65, VK_BROWSER_SEARCH |
KBDEXT },
133 { 0x66, VK_BROWSER_FAVORITES |
KBDEXT },
134 { 0x67, VK_BROWSER_REFRESH |
KBDEXT },
135 { 0x68, VK_BROWSER_STOP |
KBDEXT },
136 { 0x69, VK_BROWSER_FORWARD |
KBDEXT },
137 { 0x6A, VK_BROWSER_BACK |
KBDEXT },
138 { 0x6B, VK_LAUNCH_APP1 |
KBDEXT },
139 { 0x6C, VK_LAUNCH_MAIL |
KBDEXT },
140 { 0x6D, VK_LAUNCH_MEDIA_SELECT |
KBDEXT },
168 {
VK_TAB, 0, {
'\t',
'\t'} },
169 {
VK_ADD, 0, {
'+',
'+' } },
196 { VK_OEM_COMMA, 0, {
',',
'<',
WCH_DEAD} },
198 { VK_OEM_PERIOD, 0, {
'.',
'>',
WCH_DEAD} },
200 {
VK_OEM_2, 0, {
'/',
'?', 0x00bf } },
206 {
'1', 0, {
'1',
'!', 0x00a1, 0x00b9 } },
207 {
'3', 0, {
'3',
'#', 0x00aa, 0x00b3 } },
208 {
'4', 0, {
'4',
'$', 0x00a2, 0x00a3 } },
209 {
'5', 0, {
'5',
'%', 0x20ac, 0x00a5 } },
212 {
'9', 0, {
'9',
'(', 0x2018, 0x201c } },
213 {
'0', 0, {
'0',
')', 0x2019, 0x201d } },
214 { VK_OEM_PLUS, 0, {
'=',
'+', 0x00d7, 0x00f7 } },
233 { VK_OEM_102, 0, {
'-',
'_', 0x2013, 0x2014 } },
242 {
VK_OEM_4, 0, {
'[',
'{', 0x00ab, 0x2039, 0x001b } },
243 {
VK_OEM_6, 0, {
']',
'}', 0x00bb, 0x203A, 0x001d } },
256 {
'2', 0, {
'2',
'@', 0x00ba, 0x00b2,
WCH_NONE, 0x0000 } },
258 { VK_OEM_MINUS, 0, {
'-',
'_', 0x2013, 0x2014,
WCH_NONE, 0x001f } },
276#define vk_master(n,x) { (PVK_TO_WCHARS1)x, n, sizeof(x[0]) }
290 { 0x0e,
L"Backspace" },
295 { 0x36,
L"Right Shift" },
299 { 0x3a,
L"CAPLOK Lock" },
311 { 0x46,
L"Scroll Lock" },
324 { 0x53,
L"Num Del" },
325 { 0x54,
L"Sys Req" },
344 { 0x1c,
L"Num Enter" },
345 { 0x1d,
L"Right Control" },
347 { 0x37,
L"Prnt Scrn" },
348 { 0x38,
L"Right Alt" },
349 { 0x45,
L"Num Lock" },
353 { 0x49,
L"Page Up" },
358 { 0x51,
L"Page Down" },
361 { 0x54,
L"<ReactOS>" },
363 { 0x5b,
L"Left <ReactOS>" },
364 { 0x5c,
L"Right <ReactOS>" },
365 { 0x5d,
L"Application" },
370 L"\'" L"ACUTE ACCENT",
371 L"`" L"GRAVE ACCENT",
372 L"^" L"CIRCUMFLEX ACCENT",
376 L"\x02dd" L"DOUBLE ACUTE ACCENT",
377 L"\x00a8" L"DIAERESIS",
380 L"\x02da" L"RING ABOVE",
382 L"\x00b8" L"CEDILLA",
383 L"\x02d9" L"DOT ABOVE",
387#define DEADTRANS(ch, accent, comp, flags) MAKELONG(ch, accent), comp, flags
407 {
DEADTRANS(0x00e5,
'\'', 0x01fb, 0x0000) },
408 {
DEADTRANS(0x00e6,
'\'', 0x01fd, 0x0000) },
409 {
DEADTRANS(0x00e7,
'\'', 0x1e09, 0x0000) },
410 {
DEADTRANS(0x00f5,
'\'', 0x1e4d, 0x0000) },
411 {
DEADTRANS(0x00f8,
'\'', 0x01ff, 0x0000) },
412 {
DEADTRANS(0x00fc,
'\'', 0x01d8, 0x0000) },
430 {
DEADTRANS(0x00c5,
'\'', 0x01fa, 0x0000) },
431 {
DEADTRANS(0x00c6,
'\'', 0x01fc, 0x0000) },
432 {
DEADTRANS(0x00c7,
'\'', 0x1e08, 0x0000) },
433 {
DEADTRANS(0x00d8,
'\'', 0x01fe, 0x0000) },
434 {
DEADTRANS(0x00dc,
'\'', 0x01d7, 0x0000) },
513 {
DEADTRANS(0x02db, 0x02db, 0x02db, 0x0000) },
560 {
DEADTRANS(0x02dd, 0x02dd, 0x02dd, 0x0000) },
572 {
DEADTRANS(0x00ed, 0x00a8, 0x1e2f, 0x0000) },
573 {
DEADTRANS(0x00fa, 0x00a8, 0x01d8, 0x0000) },
583 {
DEADTRANS(0x00cd, 0x00a8, 0x1e2e, 0x0000) },
584 {
DEADTRANS(0x00da, 0x00a8, 0x01d7, 0x0000) },
586 {
DEADTRANS(0x00a8, 0x00a8, 0x00a8, 0x0000) },
606 {
DEADTRANS(0x00fc, 0x02c7, 0x01da, 0x0000) },
623 {
DEADTRANS(0x00dc, 0x02c7, 0x01d9, 0x0000) },
625 {
DEADTRANS(0x02c7, 0x02c7, 0x02c7, 0x0000) },
634 {
DEADTRANS(0x00e1, 0x02d8, 0x1eaf, 0x0000) },
635 {
DEADTRANS(0x00e3, 0x02d8, 0x1eb5, 0x0000) },
642 {
DEADTRANS(0x00c1, 0x02d8, 0x1eae, 0x0000) },
643 {
DEADTRANS(0x00c3, 0x02d8, 0x1eb4, 0x0000) },
645 {
DEADTRANS(0x02d8, 0x02d8, 0x02d8, 0x0000) },
651 {
DEADTRANS(0x00e1, 0x02da, 0x01fb, 0x0000) },
654 {
DEADTRANS(0x00c1, 0x02da, 0x01fa, 0x0000) },
656 {
DEADTRANS(0x02da, 0x02da, 0x02da, 0x0000) },
665 {
DEADTRANS(0x00e4, 0x00af, 0x01df, 0x0000) },
666 {
DEADTRANS(0x00e6, 0x00af, 0x01e3, 0x0000) },
667 {
DEADTRANS(0x00e9, 0x00af, 0x1e17, 0x0000) },
668 {
DEADTRANS(0x00f3, 0x00af, 0x1e53, 0x0000) },
669 {
DEADTRANS(0x00f5, 0x00af, 0x022d, 0x0000) },
670 {
DEADTRANS(0x00f6, 0x00af, 0x022b, 0x0000) },
671 {
DEADTRANS(0x00fc, 0x00af, 0x01d6, 0x0000) },
679 {
DEADTRANS(0x00c4, 0x00af, 0x01de, 0x0000) },
680 {
DEADTRANS(0x00c6, 0x00af, 0x01e2, 0x0000) },
681 {
DEADTRANS(0x00c9, 0x00af, 0x1e16, 0x0000) },
682 {
DEADTRANS(0x00d3, 0x00af, 0x1e52, 0x0000) },
683 {
DEADTRANS(0x00d5, 0x00af, 0x022c, 0x0000) },
684 {
DEADTRANS(0x00d6, 0x00af, 0x022a, 0x0000) },
685 {
DEADTRANS(0x00dc, 0x00af, 0x01d5, 0x0000) },
687 {
DEADTRANS(0x00af, 0x00af, 0x00af, 0x0000) },
700 {
DEADTRANS(0x0107, 0x00b8, 0x1e09, 0x0000) },
712 {
DEADTRANS(0x0106, 0x00b8, 0x1e08, 0x0000) },
714 {
DEADTRANS(0x00b8, 0x00b8, 0x00b8, 0x0000) },
737 {
DEADTRANS(0x015b, 0x02d9, 0x1e65, 0x0000) },
759 {
DEADTRANS(0x015a, 0x02d9, 0x1e64, 0x0000) },
761 {
DEADTRANS(0x02d9, 0x02d9, 0x02d9, 0x0000) },
#define DEADTRANS(ch, accent, comp, flags)
ROSDATA DEADKEY dead_key[]
ROSDATA VSC_LPWSTR extended_key_names[]
ROSDATA USHORT scancode_to_vk[]
ROSDATA VK_TO_WCHARS1 keypad_numbers[]
ROSDATA MODIFIERS modifier_bits
ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[]
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_WCHARS5 key_to_chars_5mod[]
ROSDATA VK_TO_WCHARS2 key_to_chars_2mod[]
ROSDATA DEADKEY_LPWSTR dead_key_names[]
ROSDATA VK_TO_WCHARS6 key_to_chars_6mod[]
ROSDATA VK_TO_BIT modifier_keys[]
ROSDATA VSC_VK extcode1_to_vk[]
ROSDATA KBDTABLES keyboard_layout_table
PKBDTABLES WINAPI KbdLayerDescriptor()