2
* Copyright 2010 Inalogic Inc.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU Lesser General Public License version 3, as
6
* published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranties of
10
* MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11
* PURPOSE. See the applicable version of the GNU Lesser General Public
12
* License for more details.
14
* You should have received a copy of both the GNU Lesser General Public
15
* License version 3 along with this program. If not, see
16
* <http://www.gnu.org/licenses/>
18
* Authored by: Jay Taoko <jay.taoko_AT_gmail_DOT_com>
23
#ifndef VIRTUALKEYCODESX11_H
24
#define VIRTUALKEYCODESX11_H
29
// The following table shows the symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order.
30
// Symbolic constant name Value (hex) Mouse or keyboard equivalents
32
#define INL_VK_LBUTTON 0x01 // Left mouse button
33
#define INL_VK_RBUTTON 0x02 // Right mouse button
34
#define INL_VK_CANCEL 0x03 // Control-break processing
35
#define INL_VK_MBUTTON 0x04 // Middle mouse button (three-button mouse)
36
#define INL_VK_XBUTTON1 0x05 // Windows 2000/XP: X1 mouse button
37
#define INL_VK_XBUTTON2 0x06 // Windows 2000/XP: X2 mouse button
38
#define INL_VK_07 0x07 // Undefined
39
#define INL_VK_BACKSPACE 0x08 // BACKSPACE key
40
#define INL_VK_TAB 0x09 // TAB key
41
#define INL_VK_0A 0x0A // Reserved
42
#define INL_VK_0B 0x0B // Reserved
43
#define INL_VK_CLEAR 0x0C // CLEAR key
44
#define INL_VK_ENTER 0x0D // ENTER key
45
#define INL_VK_0E 0x0E // Undefined
46
#define INL_VK_0F 0x0F // Undefined
47
#define INL_VK_SHIFT 0x10 // SHIFT key
48
#define INL_VK_CONTROL 0x11 // CTRL key
49
#define INL_VK_MENU 0x12 // ALT key
50
#define INL_VK_PAUSE 0x13 // PAUSE key
51
#define INL_VK_CAPITAL 0x14 // CAPS LOCK key
52
#define INL_VK_KANA 0x15 // IME Kana mode
53
#define INL_VK_HANGUEL 0x15 // IME Hanguel mode (maintained for compatibility; use VK_HANGUL)
54
#define INL_VK_HANGUL 0x15 // IME Hangul mode
55
#define INL_VK_16 0x16 // Undefined
56
#define INL_VK_JUNJA 0x17 // IME Junja mode
57
#define INL_VK_FINAL 0x18 // IME final mode
58
#define INL_VK_HANJA 0x19 // IME Hanja mode
59
#define INL_VK_KANJI 0x19 // IME Kanji mode
60
#define INL_VK_1A 0x1A // Undefined
61
#define INL_VK_ESCAPE 0x1B // ESC key
62
#define INL_VK_CONVERT 0x1C // IME convert (Reserved for Kanji systems)
63
#define INL_VK_NONCONVERT 0x1D // IME nonconvert (Reserved for Kanji systems)
64
#define INL_VK_ACCEPT 0x1E // IME accept (Reserved for Kanji systems)
65
#define INL_VK_MODECHANGE 0x1F // IME mode change request (Reserved for Kanji systems)
66
#define INL_VK_SPACE 0x20 // SPACEBAR
67
#define INL_VK_PAGE_UP 0x21 // PAGE UP key
68
#define INL_VK_PAGE_DOWN 0x22 // PAGE DOWN key
69
#define INL_VK_END 0x23 // END key
70
#define INL_VK_HOME 0x24 // HOME key
71
#define INL_VK_LEFT 0x25 // LEFT ARROW key
72
#define INL_VK_UP 0x26 // UP ARROW key
73
#define INL_VK_RIGHT 0x27 // RIGHT ARROW key
74
#define INL_VK_DOWN 0x28 // DOWN ARROW key
75
#define INL_VK_SELECT 0x29 // SELECT key
76
#define INL_VK_PRINT 0x2A // PRINT key
77
#define INL_VK_EXECUTE 0x2B // EXECUTE key
78
#define INL_VK_SNAPSHOT 0x2C // PRINT SCREEN key for Windows 3.0 and later
79
#define INL_VK_INSERT 0x2D // INS key
80
#define INL_VK_DELETE 0x2E // DEL key
81
#define INL_VK_HELP 0x2F // HELP key
82
#define INL_VK_0 0x30 // 0 key
83
#define INL_VK_1 0x31 // 1 key
84
#define INL_VK_2 0x32 // 2 key
85
#define INL_VK_3 0x33 // 3 key
86
#define INL_VK_4 0x34 // 4 key
87
#define INL_VK_5 0x35 // 5 key
88
#define INL_VK_6 0x36 // 6 key
89
#define INL_VK_7 0x37 // 7 key
90
#define INL_VK_8 0x38 // 8 key
91
#define INL_VK_9 0x39 // 9 key
92
#define INL_VK_3A 0x3A // Undefined
93
#define INL_VK_3B 0x3B // Undefined
94
#define INL_VK_3C 0x3C // Undefined
95
#define INL_VK_3D 0x3D // Undefined
96
#define INL_VK_3E 0x3E // Undefined
97
#define INL_VK_3F 0x3F // Undefined
98
#define INL_VK_40 0x40 // Undefined
99
#define INL_VK_A 0x41 // A key
100
#define INL_VK_B 0x42 // B key
101
#define INL_VK_C 0x43 // C key
102
#define INL_VK_D 0x44 // D key
103
#define INL_VK_E 0x45 // E key
104
#define INL_VK_F 0x46 // F key
105
#define INL_VK_G 0x47 // G key
106
#define INL_VK_H 0x48 // H key
107
#define INL_VK_I 0x49 // I key
108
#define INL_VK_J 0x4A // J key
109
#define INL_VK_K 0x4B // K key
110
#define INL_VK_L 0x4C // L key
111
#define INL_VK_M 0x4D // M key
112
#define INL_VK_N 0x4E // N key
113
#define INL_VK_O 0x4F // O key
114
#define INL_VK_P 0x50 // P key
115
#define INL_VK_Q 0x51 // Q key
116
#define INL_VK_R 0x52 // R key
117
#define INL_VK_S 0x53 // S key
118
#define INL_VK_T 0x54 // T key
119
#define INL_VK_U 0x55 // U key
120
#define INL_VK_V 0x56 // V key
121
#define INL_VK_W 0x57 // W key
122
#define INL_VK_X 0x58 // X key
123
#define INL_VK_Y 0x59 // Y key
124
#define INL_VK_Z 0x5A // Z key
125
#define INL_VK_LWIN 0x5B // Left Windows key (Microsoft Natural Keyboard)
126
#define INL_VK_RWIN 0x5C // Right Windows key (Microsoft Natural Keyboard)
127
#define INL_VK_APPS 0x5D // Applications key (Microsoft Natural Keyboard)
128
#define INL_VK_5E 0x5E // Reserved
129
#define INL_VK_SLEEP 0x5F // Computer Sleep key
130
#define INL_VK_NUMPAD0 0x60 // Numeric keypad 0 key
131
#define INL_VK_NUMPAD1 0x61 // Numeric keypad 1 key
132
#define INL_VK_NUMPAD2 0x62 // Numeric keypad 2 key
133
#define INL_VK_NUMPAD3 0x63 // Numeric keypad 3 key
134
#define INL_VK_NUMPAD4 0x64 // Numeric keypad 4 key
135
#define INL_VK_NUMPAD5 0x65 // Numeric keypad 5 key
136
#define INL_VK_NUMPAD6 0x66 // Numeric keypad 6 key
137
#define INL_VK_NUMPAD7 0x67 // Numeric keypad 7 key
138
#define INL_VK_NUMPAD8 0x68 // Numeric keypad 8 key
139
#define INL_VK_NUMPAD9 0x69 // Numeric keypad 9 key
140
#define INL_VK_MULTIPLY 0x6A // Multiply key
141
#define INL_VK_ADD 0x6B // Add key
142
#define INL_VK_SEPARATOR 0x6C // Separator key
143
#define INL_VK_SUBTRACT 0x6D // Subtract key
144
#define INL_VK_DECIMAL 0x6E // Decimal key
145
#define INL_VK_DIVIDE 0x6F // Divide key
146
#define INL_VK_F1 0x70 // F1 key
147
#define INL_VK_F2 0x71 // F2 key
148
#define INL_VK_F3 0x72 // F3 key
149
#define INL_VK_F4 0x73 // F4 key
150
#define INL_VK_F5 0x74 // F5 key
151
#define INL_VK_F6 0x75 // F6 key
152
#define INL_VK_F7 0x76 // F7 key
153
#define INL_VK_F8 0x77 // F8 key
154
#define INL_VK_F9 0x78 // F9 key
155
#define INL_VK_F10 0x79 // F10 key
156
#define INL_VK_F11 0x7A // F11 key
157
#define INL_VK_F12 0x7B // F12 key
158
#define INL_VK_F13 0x7C // F13 key
159
#define INL_VK_F14 0x7D // F14 key
160
#define INL_VK_F15 0x7E // F15 key
161
#define INL_VK_F16 0x7F // F16 key
162
#define INL_VK_F17 0x80 // F17 key
163
#define INL_VK_F18 0x81 // F18 key
164
#define INL_VK_F19 0x82 // F19 key
165
#define INL_VK_F20 0x83 // F20 key
166
#define INL_VK_F21 0x84 // F21 key
167
#define INL_VK_F22 0x85 // F22 key
168
#define INL_VK_F23 0x86 // F23 key
169
#define INL_VK_F24 0x87 // F24 key
170
#define INL_VK_88 0x88 // Unassigned
171
#define INL_VK_89 0x89 // Unassigned
172
#define INL_VK_8A 0x8A // Unassigned
173
#define INL_VK_8B 0x8B // Unassigned
174
#define INL_VK_8C 0x8C // Unassigned
175
#define INL_VK_8D 0x8D // Unassigned
176
#define INL_VK_8E 0x8E // Unassigned
177
#define INL_VK_8F 0x8F // Unassigned
178
#define INL_VK_NUMLOCK 0x90 // NUM LOCK key
179
#define INL_VK_SCROLL 0x91 // SCROLL LOCK key
180
#define INL_VK_OEM_NEC_EQUAL 0x92 // NEC PC-9800 kbd definitions: '=' key on numpad
181
#define INL_VK_OEM_FJ_JISHO 0x92 // Fujitsu/OASYS kbd definitions: 'Dictionary' key
182
#define INL_VK_OEM_FJ_MASSHOU 0x93 // Fujitsu/OASYS kbd definitions: 'Unregister word' key
183
#define INL_VK_OEM_FJ_TOUROKU 0x94 // Fujitsu/OASYS kbd definitions: 'Register word' key
184
#define INL_VK_OEM_FJ_LOYA 0x95 // Fujitsu/OASYS kbd definitions: 'Left OYAYUBI' key
185
#define INL_VK_OEM_FJ_ROYA 0x96 // Fujitsu/OASYS kbd definitions: 'Right OYAYUBI' key
186
#define INL_VK_97 0x97 // Unassigned
187
#define INL_VK_98 0x98 // Unassigned
188
#define INL_VK_99 0x99 // Unassigned
189
#define INL_VK_9A 0x9A // Unassigned
190
#define INL_VK_9B 0x9B // Unassigned
191
#define INL_VK_9C 0x9C // Unassigned
192
#define INL_VK_9D 0x9D // Unassigned
193
#define INL_VK_9E 0x9E // Unassigned
194
#define INL_VK_9F 0x9F // Unassigned
195
#define INL_VK_LSHIFT 0xA0 // Left SHIFT key
196
#define INL_VK_RSHIFT 0xA1 // Right SHIFT key
197
#define INL_VK_LCONTROL 0xA2 // Left CONTROL key
198
#define INL_VK_RCONTROL 0xA3 // Right CONTROL key
199
#define INL_VK_LMENU 0xA4 // Left MENU key
200
#define INL_VK_RMENU 0xA5 // Right MENU key
201
#define INL_VK_BROWSER_BACK 0xA6 // Windows 2000/XP: Browser Back key
202
#define INL_VK_BROWSER_FORWARD 0xA7 // Windows 2000/XP: Browser Forward key
203
#define INL_VK_BROWSER_REFRESH 0xA8 // Windows 2000/XP: Browser Refresh key
204
#define INL_VK_BROWSER_STOP 0xA9 // Windows 2000/XP: Browser Stop key
205
#define INL_VK_BROWSER_SEARCH 0xAA // Windows 2000/XP: Browser Search key
206
#define INL_VK_BROWSER_FAVORITES 0xAB // Windows 2000/XP: Browser Favorites key
207
#define INL_VK_BROWSER_HOME 0xAC // Windows 2000/XP: Browser Start and Home key
208
#define INL_VK_VOLUME_MUTE 0xAD // Windows 2000/XP: Volume Mute key
209
#define INL_VK_VOLUME_DOWN 0xAE // Windows 2000/XP: Volume Down key
210
#define INL_VK_VOLUME_UP 0xAF // Windows 2000/XP: Volume Up key
211
#define INL_VK_MEDIA_NEXT_TRACK 0xB0 // Windows 2000/XP: Next Track key
212
#define INL_VK_MEDIA_PREV_TRACK 0xB1 // Windows 2000/XP: Previous Track key
213
#define INL_VK_MEDIA_STOP 0xB2 // Windows 2000/XP: Stop Media key
214
#define INL_VK_MEDIA_PLAY_PAUSE 0xB3 // Windows 2000/XP: Play/Pause Media key
215
#define INL_VK_LAUNCH_MAIL 0xB4 // Windows 2000/XP: Start Mail key
216
#define INL_VK_LAUNCH_MEDIA_SELECT 0xB5 // Windows 2000/XP: Select Media key
217
#define INL_VK_LAUNCH_APP1 0xB6 // Windows 2000/XP: Start Application 1 key
218
#define INL_VK_LAUNCH_APP2 0xB7 // Windows 2000/XP: Start Application 2 key
219
#define INL_VK_B8 0xB8 // Reserved
220
#define INL_VK_B9 0xB8 // Reserved
221
#define INL_VK_OEM_1 0xBA // Windows 2000/XP: For the US standard keyboard, the ';:' key
222
#define INL_VK_OEM_PLUS 0xBB // Windows 2000/XP: For any country/region, the '+' key
223
#define INL_VK_OEM_COMMA 0xBC // Windows 2000/XP: For any country/region, the ',' key
224
#define INL_VK_OEM_MINUS 0xBD // Windows 2000/XP: For any country/region, the '-' key
225
#define INL_VK_OEM_PERIOD 0xBE // Windows 2000/XP: For any country/region, the '.' key
226
#define INL_VK_OEM_2 0xBF // Windows 2000/XP: For the US standard keyboard, the '/?' key
227
#define INL_VK_OEM_3 0xC0 // Windows 2000/XP: For the US standard keyboard, the '`~' key
228
#define INL_VK_C1 0xC1 // Reserved
229
#define INL_VK_C2 0xC2 // Reserved
230
#define INL_VK_C3 0xC3 // Reserved
231
#define INL_VK_C4 0xC4 // Reserved
232
#define INL_VK_C5 0xC5 // Reserved
233
#define INL_VK_C6 0xC6 // Reserved
234
#define INL_VK_C7 0xC7 // Reserved
235
#define INL_VK_C8 0xC8 // Reserved
236
#define INL_VK_C9 0xC9 // Reserved
237
#define INL_VK_CA 0xCA // Reserved
238
#define INL_VK_CB 0xCB // Reserved
239
#define INL_VK_CC 0xCC // Reserved
240
#define INL_VK_CD 0xCD // Reserved
241
#define INL_VK_CE 0xCE // Reserved
242
#define INL_VK_D8 0xD8 // Unassigned
243
#define INL_VK_D9 0xD9 // Unassigned
244
#define INL_VK_DA 0xDA // Unassigned
245
#define INL_VK_OEM_4 0xDB // Windows 2000/XP: For the US standard keyboard, the '[{' key
246
#define INL_VK_OEM_5 0xDC // Windows 2000/XP: For the US standard keyboard, the '\|' key
247
#define INL_VK_OEM_6 0xDD // Windows 2000/XP: For the US standard keyboard, the ']}' key
248
#define INL_VK_OEM_7 0xDE // Windows 2000/XP: For the US standard keyboard, the 'single-quote/double-quote' key
249
#define INL_VK_OEM_8 0xDF //
250
#define INL_VK_E0 0xE0 // Reserved
251
#define INL_VK_E1 0xE1 // OEM specific
252
#define INL_VK_OEM_102 0xE2 // Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard
253
#define INL_VK_E3 0xE3 // OEM specific
254
#define INL_VK_E4 0xE4 // OEM specific
255
#define INL_VK_PROCESSKEY 0xE5 // Windows 95/98, Windows NT 4.0, Windows 2000/XP: IME PROCESS key
256
#define INL_VK_E6 0xE6 // OEM specific
257
#define INL_VK_PACKET 0xE7 // Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT , SendInput , WM_KEYDOWN , and WM_KEYUP
258
#define INL_VK_E8 0xE8 // Unassigned
259
#define INL_VK_OEM_RESET 0xE9 // Only used by Nokia.
260
#define INL_VK_OEM_JUMP 0xEA // Only used by Nokia.
261
#define INL_VK_OEM_PA1 0xEB // Only used by Nokia.
262
#define INL_VK_OEM_PA2 0xEC // Only used by Nokia.
263
#define INL_VK_OEM_PA3 0xED // Only used by Nokia.
264
#define INL_VK_OEM_WSCTRL 0xEE // Only used by Nokia.
265
#define INL_VK_OEM_CUSEL 0xEF // Only used by Nokia.
266
#define INL_VK_OEM_ATTN 0xF0 // Only used by Nokia.
267
#define INL_VK_OEM_FINNISH 0xF1 // Only used by Nokia.
268
#define INL_VK_OEM_COPY 0xF2 // Only used by Nokia.
269
#define INL_VK_OEM_AUTO 0xF3 // Only used by Nokia.
270
#define INL_VK_OEM_ENLW 0xF4 // Only used by Nokia.
271
#define INL_VK_OEM_BACKTAB 0xF5 // Only used by Nokia.
272
#define INL_VK_ATTN 0xF6 // Attn key
273
#define INL_VK_CRSEL 0xF7 // CrSel key
274
#define INL_VK_EXSEL 0xF8 // ExSel key
275
#define INL_VK_EREOF 0xF9 // Erase EOF key
276
#define INL_VK_PLAY 0xFA // Play key
277
#define INL_VK_ZOOM 0xFB // Zoom key
278
#define INL_VK_NONAME 0xFC // Reserved for future use.
279
#define INL_VK_PA1 0xFD // PA1 key
280
#define INL_VK_OEM_CLEAR 0xFE // Clear key
281
#define INL_VK_FF 0xFF // Multimedia keys. See ScanCode keys.
283
#define INL_MAX_VK 256
287
#endif // VIRTUALKEYCODESX11_H