16 #define ROSDATA static __declspec(allocate(".data"))
19 #pragma data_seg(".data")
20 #define ROSDATA static
22 #define ROSDATA static __attribute__((section(".data")))
27#define KNUMS KBDNUMPAD|KBDSPECIAL
28#define KMEXT KBDEXT|KBDMULTIVK
46 'B',
'N',
'M', VK_OEM_COMMA,
74 { 0x10, VK_MEDIA_PREV_TRACK |
KBDEXT },
75 { 0x19, VK_MEDIA_NEXT_TRACK |
KBDEXT },
77 { 0x20, VK_VOLUME_MUTE |
KBDEXT },
78 { 0x21, VK_LAUNCH_APP2 |
KBDEXT },
79 { 0x22, VK_MEDIA_PLAY_PAUSE |
KBDEXT },
80 { 0x24, VK_MEDIA_STOP |
KBDEXT },
81 { 0x2E, VK_VOLUME_DOWN |
KBDEXT },
82 { 0x30, VK_VOLUME_UP |
KBDEXT },
83 { 0x32, VK_BROWSER_HOME |
KBDEXT },
101 { 0x65, VK_BROWSER_SEARCH |
KBDEXT },
102 { 0x66, VK_BROWSER_FAVORITES |
KBDEXT },
103 { 0x67, VK_BROWSER_REFRESH |
KBDEXT },
104 { 0x68, VK_BROWSER_STOP |
KBDEXT },
105 { 0x69, VK_BROWSER_FORWARD |
KBDEXT },
106 { 0x6A, VK_BROWSER_BACK |
KBDEXT },
107 { 0x6B, VK_LAUNCH_APP1 |
KBDEXT },
108 { 0x6C, VK_LAUNCH_MAIL |
KBDEXT },
109 { 0x6D, VK_LAUNCH_MEDIA_SELECT |
KBDEXT },
148 {
'5', 0, {
'5',
'%'} },
149 {
'7', 0, {
'7',
'&'} },
150 {
'8', 0, {
'8',
'*'} },
151 {
'9', 0, {
'9',
')'} },
152 { VK_OEM_PLUS, 0, {
'=',
'+'} },
153 {
'Q', 0, {0x0636, 0x064B} },
154 {
'W', 0, {0x0635, 0x064C} },
155 {
'E', 0, {0x062B, 0x064D} },
157 {
'T', 0, {0x0641, 0x060C} },
158 {
'Y', 0, {0x063A, 0x061B} },
159 {
'U', 0, {0x0639,
','} },
160 {
'I', 0, {0x0647,
']'} },
161 {
'O', 0, {0x062E,
'['} },
162 {
'P', 0, {0x062D,
'\\'} },
163 {
'A', 0, {0x0634, 0x064E} },
164 {
'S', 0, {0x0633, 0x064F} },
165 {
'D', 0, {0x06CC, 0x0650} },
166 {
'F', 0, {0x0628, 0x0651} },
167 {
'G', 0, {0x0644, 0x06C0} },
168 {
'H', 0, {0x0627, 0x0622} },
169 {
'J', 0, {0x062A, 0x0640} },
170 {
'K', 0, {0x0646, 0x00AB} },
171 {
'L', 0, {0x0645, 0x00BB} },
174 {
'Z', 0, {0x0638, 0x0629} },
175 {
'X', 0, {0x0637, 0x064A} },
176 {
'C', 0, {0x0632, 0x0698} },
177 {
'V', 0, {0x0631, 0x0624} },
178 {
'B', 0, {0x0630, 0x0625} },
179 {
'N', 0, {0x062F, 0x0623} },
180 {
'M', 0, {0x0626, 0x0621} },
181 { VK_OEM_COMMA, 0, {0x0648,
'<'} },
182 { VK_OEM_PERIOD, 0, {
'.',
'>'} },
184 { VK_OEM_102, 0, {0x067E,
'|'} },
186 {
VK_TAB, 0, {
'\t',
'\t'} },
187 {
VK_ADD, 0, {
'+',
'+'} },
196 {
'0', 0, {
'0',
'(', 0x06C1 } },
197 {
VK_OEM_4, 0, {0x062C ,
'}', 0x1b } },
198 {
VK_OEM_6, 0, {0x0686 ,
'{', 0x1d } },
199 {
VK_OEM_5, 0, {0x067E ,
'|', 0x1c } },
200 {
VK_BACK, 0, {0x08, 0x08, 0x7F} },
210 {
'1', 0, {
'1',
'!',
WCH_NONE, 0x200D } },
211 {
'2', 0, {
'2',
'@',
WCH_NONE, 0x200C } },
212 {
'3', 0, {
'3',
'#',
WCH_NONE, 0x200E } },
213 {
'4', 0, {
'4',
'$',
WCH_NONE, 0x200F } },
214 {
'6', 0, {
'6',
'^',
WCH_NONE, 0x1e } },
215 { VK_OEM_MINUS, 0, {
'-',
'_',
WCH_NONE, 0x1f } },
233#define vk_master(n, x) { (PVK_TO_WCHARS1)x, n, sizeof(x[0]) }
248 {
'R', 1 , {0x0631, 0x064A, 0x0627, 0x0644} },
256 { 0x01,
L"Esc" }, { 0x0e,
L"Backspace" }, { 0x0f,
L"Tab" },
257 { 0x1c,
L"Enter" }, { 0x1d,
L"Ctrl" }, { 0x2a,
L"Shift" },
258 { 0x36,
L"Right Shift" },{ 0x37,
L"Num *" }, { 0x38,
L"Alt" },
259 { 0x39,
L"Space" }, { 0x3a,
L"Caps Lock" },
260 { 0x3b,
L"F1" }, { 0x3c,
L"F2" }, { 0x3d,
L"F3" }, { 0x3e,
L"F4" },
261 { 0x3f,
L"F5" }, { 0x40,
L"F6" }, { 0x41,
L"F7" }, { 0x42,
L"F8" },
262 { 0x43,
L"F9" }, { 0x44,
L"F10" },
263 { 0x45,
L"Pause" }, { 0x46,
L"Scroll Lock" },
264 { 0x47,
L"Num 7" }, { 0x48,
L"Num 8" }, { 0x49,
L"Num 9" }, { 0x4a,
L"Num -" },
265 { 0x4b,
L"Num 4" }, { 0x4c,
L"Num 5" }, { 0x4d,
L"Num 6" }, { 0x4e,
L"Num +" },
266 { 0x4f,
L"Num 1" }, { 0x50,
L"Num 2" }, { 0x51,
L"Num 3" },
267 { 0x52,
L"Num 0" }, { 0x53,
L"Num Del" },{ 0x54,
L"Sys Req" },
268 { 0x57,
L"F11" }, { 0x58,
L"F12" },
269 { 0x7c,
L"F13" }, { 0x7d,
L"F14" }, { 0x7e,
L"F15" }, { 0x7f,
L"F16" },
270 { 0x80,
L"F17" }, { 0x81,
L"F18" }, { 0x82,
L"F19" }, { 0x83,
L"F20" },
271 { 0x84,
L"F21" }, { 0x85,
L"F22" }, { 0x86,
L"F23" }, { 0x87,
L"F24" },
276 { 0x1c,
L"Num Enter" }, { 0x1d,
L"Right Control" },
277 { 0x35,
L"Num /" }, { 0x37,
L"Prnt Scrn" }, { 0x38,
L"Right Alt" },
278 { 0x45,
L"Num Lock" }, { 0x46,
L"Break" },
279 { 0x47,
L"Home" }, { 0x48,
L"Up" }, { 0x49,
L"Page Up" },
280 { 0x4b,
L"Left" }, { 0x4d,
L"Right" },
281 { 0x4f,
L"End" }, { 0x50,
L"Down" }, { 0x51,
L"Page Down" },
282 { 0x52,
L"Insert" }, { 0x53,
L"Delete" },
283 { 0x54,
L"<00>" }, { 0x56,
L"Help" },
284 { 0x5b,
L"Left Windows" },{ 0x5c,
L"Right Windows" },{ 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 VK_TO_WCHARS4 key_to_chars_4mod[]
ROSDATA VSC_LPWSTR key_names[]
ROSDATA LIGATURE4 ligatures[]
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()