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,
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 },
167 {
'1', 0, {
'1',
'!'} },
169 {
'3', 0, {
'3',
'#'} },
170 {
'4', 0, {
'4',
'$'} },
171 {
'5', 0, {
'5',
'%'} },
173 {
'7', 0, {
'7',
'&'} },
174 {
'8', 0, {
'8',
'*'} },
175 {
'9', 0, {
'9',
'('} },
176 {
'0', 0, {
'0',
')'} },
177 {
'Q', 0, {
';',
':'} },
181 { VK_OEM_PLUS ,0, {
'=',
'+'} },
184 { VK_OEM_COMMA ,0, {
',',
'<'} },
185 { VK_OEM_PERIOD ,0, {
'.',
'>'} },
188 {
VK_TAB ,0, {
'\t',
'\t'} },
189 {
VK_ADD ,0, {
'+',
'+'} },
216 {
'A',
CAPLOK, {0x3B1, 0x391} },
217 {
'B',
CAPLOK, {0x3B2, 0x392} },
218 {
'C',
CAPLOK, {0x3C8, 0x3A8} },
219 {
'D',
CAPLOK, {0x3B4, 0x394} },
220 {
'E',
CAPLOK, {0x3B5, 0x395} },
221 {
'F',
CAPLOK, {0x3C6, 0x3A6} },
222 {
'G',
CAPLOK, {0x3B3, 0x393} },
223 {
'H',
CAPLOK, {0x3B7, 0x397} },
224 {
'I',
CAPLOK, {0x3B9, 0x399} },
225 {
'J',
CAPLOK, {0x3BE, 0x39E} },
226 {
'K',
CAPLOK, {0x3BA, 0x39A} },
227 {
'L',
CAPLOK, {0x3BB, 0x39B} },
228 {
'M',
CAPLOK, {0x3BC, 0x39C} },
229 {
'N',
CAPLOK, {0x3BD, 0x39D} },
230 {
'O',
CAPLOK, {0x3BF, 0x39F} },
231 {
'P',
CAPLOK, {0x3C0, 0x3A0} },
233 {
'R',
CAPLOK, {0x3C1, 0x3A1} },
234 {
'S',
CAPLOK, {0x3C3, 0x3A3} },
235 {
'T',
CAPLOK, {0x3C4, 0x3A4} },
236 {
'U',
CAPLOK, {0x3B8, 0x398} },
237 {
'V',
CAPLOK, {0x3C9, 0x3A9} },
238 {
'W',
CAPLOK, {0x3C2, 0x385} },
239 {
'X',
CAPLOK, {0x3C7, 0x3A7} },
240 {
'Y',
CAPLOK, {0x3C5, 0x3A5} },
241 {
'Z',
CAPLOK, {0x3B6, 0x396} },
244 {
'2', 0, {
'2',
'@',
WCH_NONE, 0} },
245 {
'6', 0, {
'6',
'^',
WCH_NONE, 0x1e } },
246 { VK_OEM_MINUS, 0, {
'-',
'_',
WCH_NONE, 0x1f } },
266#define vk_master(n,x) { (PVK_TO_WCHARS1)x, n, sizeof(x[0]) }
276#define DEADTRANS(ch, accent, comp, flags) MAKELONG(ch, accent), comp, flags
293 {
DEADTRANS(0x3C5, 0x00A8, 0x3CB, 0x000) },
294 {
DEADTRANS(0x3A5, 0x00A8, 0x3AB, 0x000) },
295 {
DEADTRANS(0x3B9, 0x00A8, 0x3CA, 0x000) },
296 {
DEADTRANS(0x399, 0x00A8, 0x3AA, 0x000) },
297 {
DEADTRANS(0x3C5, 0x385, 0x3B0, 0x000) },
298 {
DEADTRANS(0x3B9, 0x385, 0x390, 0x000) },
305 { 0x0e,
L"Backspace" },
310 { 0x36,
L"Right Shift" },
314 { 0x3a,
L"CAPLOK Lock" },
326 { 0x46,
L"Scroll Lock" },
339 { 0x53,
L"Num Del" },
340 { 0x54,
L"Sys Req" },
359 { 0x1c,
L"Num Enter" },
360 { 0x1d,
L"Right Ctrl" },
362 { 0x37,
L"Prnt Scrn" },
363 { 0x38,
L"Right Alt" },
364 { 0x45,
L"Num Lock" },
368 { 0x49,
L"Page Up" },
374 { 0x51,
L"Page Down" },
377 { 0x54,
L"<ReactOS>" },
379 { 0x56,
L"Left Windows" },
380 { 0x5b,
L"Right Windows" },
#define DEADTRANS(ch, accent, comp, flags)
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 DEADKEY deadkey[]
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()