15#define ROSDATA static __declspec(allocate(".data"))
18#pragma data_seg(".data")
21#define ROSDATA static __attribute__((section(".data")))
27#define KNUMS KBDNUMPAD|KBDSPECIAL
28#define KMEXT KBDEXT|KBDMULTIVK
37 VK_OEM_MINUS, VK_OEM_PLUS,
VK_BACK,
54 'B',
'N',
'M', VK_OEM_COMMA,
103 { 0x10, VK_MEDIA_PREV_TRACK |
KBDEXT },
104 { 0x19, VK_MEDIA_NEXT_TRACK |
KBDEXT },
106 { 0x20, VK_VOLUME_MUTE |
KBDEXT },
107 { 0x21, VK_LAUNCH_APP2 |
KBDEXT },
108 { 0x22, VK_MEDIA_PLAY_PAUSE |
KBDEXT },
109 { 0x24, VK_MEDIA_STOP |
KBDEXT },
110 { 0x2E, VK_VOLUME_DOWN |
KBDEXT },
111 { 0x30, VK_VOLUME_UP |
KBDEXT },
112 { 0x32, VK_BROWSER_HOME |
KBDEXT },
130 { 0x65, VK_BROWSER_SEARCH |
KBDEXT },
131 { 0x66, VK_BROWSER_FAVORITES |
KBDEXT },
132 { 0x67, VK_BROWSER_REFRESH |
KBDEXT },
133 { 0x68, VK_BROWSER_STOP |
KBDEXT },
134 { 0x69, VK_BROWSER_FORWARD |
KBDEXT },
135 { 0x6A, VK_BROWSER_BACK |
KBDEXT },
136 { 0x6B, VK_LAUNCH_APP1 |
KBDEXT },
137 { 0x6C, VK_LAUNCH_MAIL |
KBDEXT },
138 { 0x6D, VK_LAUNCH_MEDIA_SELECT |
KBDEXT },
164 {
'1', 0, {0x0e45,
'+' } },
165 {
'2', 0, {
'/', 0x0e51} },
166 {
'3', 0, {
'-', 0x0e52} },
167 {
'4', 0, {0x0e20, 0x0e53} },
168 {
'5', 0, {0x0e16, 0x0e54} },
169 {
'6', 0, {0x0e38, 0x0e39} },
170 {
'7', 0, {0x0e36, 0x0e3f} },
171 {
'8', 0, {0x0e04, 0x0e55} },
172 {
'9', 0, {0x0e15, 0x0e56} },
173 {
'0', 0, {0x0e08, 0x0e57} },
174 { VK_OEM_MINUS, 0, {0x0e02, 0x0e58} },
175 { VK_OEM_PLUS, 0, {0x0e0a, 0x0e59} },
182 { VK_OEM_COMMA, 0, {0x0e21, 0x0e12} },
183 { VK_OEM_PERIOD,0, {0x0e43, 0x0e2c} },
186 {
VK_TAB, 0, {
'\t',
'\t'} },
187 {
VK_ADD, 0, {
'+',
'+' } },
197 {
VK_BACK, 0, {
'\b',
'\b', 0x7f} },
203 {
'Q', 0, {0x0e46, 0x0e50, 0x11, 0x11} },
204 {
'W', 0, {0x0e44,
'\"' , 0x17, 0x17} },
205 {
'E', 0, {0x0e33, 0x0e0e, 0x05, 0x05} },
206 {
'R', 0, {0x0e1e, 0x0e11, 0x12, 0x12} },
207 {
'T', 0, {0x0e30, 0x0e18, 0x14, 0x14} },
208 {
'Y', 0, {0x0e31, 0x0e4d, 0x19, 0x19} },
209 {
'U', 0, {0x0e35, 0x0e4a, 0x15, 0x15} },
210 {
'I', 0, {0x0e23, 0x0e13, 0x09, 0x09} },
211 {
'O', 0, {0x0e19, 0x0e2f, 0x0f, 0x0f} },
212 {
'P', 0, {0x0e22, 0x0e0d, 0x10, 0x10} },
214 {
'A', 0, {0x0e1f, 0x0e24, 0x01, 0x01} },
215 {
'S', 0, {0x0e2b, 0x0e06, 0x13, 0x13} },
216 {
'D', 0, {0x0e01, 0x0e0f, 0x04, 0x04} },
217 {
'F', 0, {0x0e14, 0x0e42, 0x06, 0x06} },
218 {
'G', 0, {0x0e40, 0x0e0c, 0x07, 0x07} },
219 {
'H', 0, {0x0e49, 0x0e47, 0x08, 0x08} },
220 {
'J', 0, {0x0e48, 0x0e4b, 0x0a, 0x0a} },
221 {
'K', 0, {0x0e32, 0x0e29, 0x0b, 0x0b} },
222 {
'L', 0, {0x0e2a, 0x0e28, 0x0c, 0x0c} },
224 {
'Z', 0, {0x0e1c,
'(' , 0x1a, 0x1a} },
225 {
'X', 0, {0x0e1b,
')' , 0x18, 0x18} },
226 {
'C', 0, {0x0e41, 0x0e09, 0x03, 0x03} },
227 {
'V', 0, {0x0e2d, 0x0e2e, 0x16, 0x16} },
228 {
'B', 0, {0x0e34, 0x0e3a, 0x02, 0x02} },
229 {
'N', 0, {0x0e37, 0x0e4c, 0x0e, 0x0e} },
230 {
'M', 0, {0x0e17,
'?' , 0x0d, 0x0d} },
249#define vk_master(n,x) { (PVK_TO_WCHARS1)x, n, sizeof(x[0]) }
262 { 0x0e,
L"Backspace" },
267 { 0x36,
L"Right Shift" },
271 { 0x3a,
L"CAPLOK Lock" },
283 { 0x46,
L"Scroll Lock" },
296 { 0x53,
L"Num Del" },
297 { 0x54,
L"Sys Req" },
316 { 0x1c,
L"Num Enter" },
317 { 0x1d,
L"Right Control" },
319 { 0x37,
L"Prnt Scrn" },
320 { 0x38,
L"Right Alt" },
321 { 0x45,
L"Num Lock" },
325 { 0x49,
L"Page Up" },
331 { 0x51,
L"Page Down" },
334 { 0x54,
L"<ReactOS>" },
336 { 0x5b,
L"Left <ReactOS>" },
337 { 0x5c,
L"Right <ReactOS>" },
338 { 0x5d,
L"Application" },
PKBDTABLES WINAPI KbdLayerDescriptor()
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_WCHARS2 key_to_chars_2mod[]
ROSDATA VK_TO_BIT modifier_keys[]
ROSDATA VSC_VK extcode1_to_vk[]
ROSDATA KBDTABLES keyboard_layout_table