1pub enum VirtualKeyCode {
3 Back,
4 Tab,
5 Clear,
6 Return,
7 Shift,
8 Control,
9 Menu,
10 Pause,
11 Capital,
12 Kana,
13 Hangul,
14 ImeOn,
15 Junja,
16 Final,
17 Hanja,
18 Kanji,
19 ImeOff,
20 Escape,
21 Convert,
22 Nonconvert,
23 Accept,
24 Modechange,
25 Space,
26 Prior,
27 Next,
28 End,
29 Home,
30 Left,
31 Up,
32 Right,
33 Down,
34 Select,
35 Print,
36 Execute,
37 Snapshot,
38 Insert,
39 Delete,
40 Help,
41 Key0,
42 Key1,
43 Key2,
44 Key3,
45 Key4,
46 Key5,
47 Key6,
48 Key7,
49 Key8,
50 Key9,
51 A,
52 B,
53 C,
54 D,
55 E,
56 F,
57 G,
58 H,
59 I,
60 J,
61 K,
62 L,
63 M,
64 N,
65 O,
66 P,
67 Q,
68 R,
69 S,
70 T,
71 U,
72 V,
73 W,
74 X,
75 Y,
76 Z,
77 Lwin,
78 Rwin,
79 Apps,
80 Sleep,
81 Numpad0,
82 Numpad1,
83 Numpad2,
84 Numpad3,
85 Numpad4,
86 Numpad5,
87 Numpad6,
88 Numpad7,
89 Numpad8,
90 Numpad9,
91 Multiply,
92 Add,
93 Separator,
94 Subtract,
95 Decimal,
96 Divide,
97 F1,
98 F2,
99 F3,
100 F4,
101 F5,
102 F6,
103 F7,
104 F8,
105 F9,
106 F10,
107 F11,
108 F12,
109 F13,
110 F14,
111 F15,
112 F16,
113 F17,
114 F18,
115 F19,
116 F20,
117 F21,
118 F22,
119 F23,
120 F24,
121 Numlock,
122 Scroll,
123 Lshift,
124 Rshift,
125 Lcontrol,
126 Rcontrol,
127 Lmenu,
128 Rmenu,
129 BrowserBack,
130 BrowserForward,
131 BrowserRefresh,
132 BrowserStop,
133 BrowserSearch,
134 BrowserFavorites,
135 BrowserHome,
136 VolumeMute,
137 VolumeDown,
138 VolumeUp,
139 MediaNextTrack,
140 MediaPrevTrack,
141 MediaStop,
142 MediaPlayPause,
143 MediaLaunchMail,
144 MediaLaunchMediaSelect,
145 MediaLaunchApp1,
146 MediaLaunchApp2,
147 Oem1,
148 OemPlus,
149 OemComma,
150 OemMinus,
151 OemPeriod,
152 Oem2,
153 Oem3,
154 Oem4,
155 Oem5,
156 Oem6,
157 Oem7,
158 Oem8,
159 Oem102,
160 Processkey,
161 Packet,
162 OemAttn,
163 Attn,
164 Crsel,
165 Exsel,
166 Ereof,
167 Play,
168 Zoom,
169 Noname,
170 Pa1,
171 OemClear,
172 Unknown,
173}
174
175impl From<VirtualKeyCode> for i32 {
176 fn from(val: VirtualKeyCode) -> Self {
177 match val {
178 VirtualKeyCode::Back => 0x08,
179 VirtualKeyCode::Tab => 0x09,
180 VirtualKeyCode::Clear => 0x0C,
181 VirtualKeyCode::Return => 0x0D,
182 VirtualKeyCode::Shift => 0x10,
183 VirtualKeyCode::Control => 0x11,
184 VirtualKeyCode::Menu => 0x12,
185 VirtualKeyCode::Pause => 0x13,
186 VirtualKeyCode::Capital => 0x14,
187 VirtualKeyCode::Kana => 0x15,
188 VirtualKeyCode::Hangul => 0x15,
189 VirtualKeyCode::ImeOn => 0x16,
190 VirtualKeyCode::Junja => 0x17,
191 VirtualKeyCode::Final => 0x18,
192 VirtualKeyCode::Hanja => 0x19,
193 VirtualKeyCode::Kanji => 0x19,
194 VirtualKeyCode::ImeOff => 0x1A,
195 VirtualKeyCode::Escape => 0x1B,
196 VirtualKeyCode::Convert => 0x1C,
197 VirtualKeyCode::Nonconvert => 0x1D,
198 VirtualKeyCode::Accept => 0x1E,
199 VirtualKeyCode::Modechange => 0x1F,
200 VirtualKeyCode::Space => 0x20,
201 VirtualKeyCode::Prior => 0x21,
202 VirtualKeyCode::Next => 0x22,
203 VirtualKeyCode::End => 0x23,
204 VirtualKeyCode::Home => 0x24,
205 VirtualKeyCode::Left => 0x25,
206 VirtualKeyCode::Up => 0x26,
207 VirtualKeyCode::Right => 0x27,
208 VirtualKeyCode::Down => 0x28,
209 VirtualKeyCode::Select => 0x29,
210 VirtualKeyCode::Print => 0x2A,
211 VirtualKeyCode::Execute => 0x2B,
212 VirtualKeyCode::Snapshot => 0x2C,
213 VirtualKeyCode::Insert => 0x2D,
214 VirtualKeyCode::Delete => 0x2E,
215 VirtualKeyCode::Help => 0x2F,
216 VirtualKeyCode::Key0 => 0x30,
217 VirtualKeyCode::Key1 => 0x31,
218 VirtualKeyCode::Key2 => 0x32,
219 VirtualKeyCode::Key3 => 0x33,
220 VirtualKeyCode::Key4 => 0x34,
221 VirtualKeyCode::Key5 => 0x35,
222 VirtualKeyCode::Key6 => 0x36,
223 VirtualKeyCode::Key7 => 0x37,
224 VirtualKeyCode::Key8 => 0x38,
225 VirtualKeyCode::Key9 => 0x39,
226 VirtualKeyCode::A => 0x41,
227 VirtualKeyCode::B => 0x42,
228 VirtualKeyCode::C => 0x43,
229 VirtualKeyCode::D => 0x44,
230 VirtualKeyCode::E => 0x45,
231 VirtualKeyCode::F => 0x46,
232 VirtualKeyCode::G => 0x47,
233 VirtualKeyCode::H => 0x48,
234 VirtualKeyCode::I => 0x49,
235 VirtualKeyCode::J => 0x4A,
236 VirtualKeyCode::K => 0x4B,
237 VirtualKeyCode::L => 0x4C,
238 VirtualKeyCode::M => 0x4D,
239 VirtualKeyCode::N => 0x4E,
240 VirtualKeyCode::O => 0x4F,
241 VirtualKeyCode::P => 0x50,
242 VirtualKeyCode::Q => 0x51,
243 VirtualKeyCode::R => 0x52,
244 VirtualKeyCode::S => 0x53,
245 VirtualKeyCode::T => 0x54,
246 VirtualKeyCode::U => 0x55,
247 VirtualKeyCode::V => 0x56,
248 VirtualKeyCode::W => 0x57,
249 VirtualKeyCode::X => 0x58,
250 VirtualKeyCode::Y => 0x59,
251 VirtualKeyCode::Z => 0x5A,
252 VirtualKeyCode::Lwin => 0x5B,
253 VirtualKeyCode::Rwin => 0x5C,
254 VirtualKeyCode::Apps => 0x5D,
255 VirtualKeyCode::Sleep => 0x5F,
256 VirtualKeyCode::Numpad0 => 0x60,
257 VirtualKeyCode::Numpad1 => 0x61,
258 VirtualKeyCode::Numpad2 => 0x62,
259 VirtualKeyCode::Numpad3 => 0x63,
260 VirtualKeyCode::Numpad4 => 0x64,
261 VirtualKeyCode::Numpad5 => 0x65,
262 VirtualKeyCode::Numpad6 => 0x66,
263 VirtualKeyCode::Numpad7 => 0x67,
264 VirtualKeyCode::Numpad8 => 0x68,
265 VirtualKeyCode::Numpad9 => 0x69,
266 VirtualKeyCode::Multiply => 0x6A,
267 VirtualKeyCode::Add => 0x6B,
268 VirtualKeyCode::Separator => 0x6C,
269 VirtualKeyCode::Subtract => 0x6D,
270 VirtualKeyCode::Decimal => 0x6E,
271 VirtualKeyCode::Divide => 0x6F,
272 VirtualKeyCode::F1 => 0x70,
273 VirtualKeyCode::F2 => 0x71,
274 VirtualKeyCode::F3 => 0x72,
275 VirtualKeyCode::F4 => 0x73,
276 VirtualKeyCode::F5 => 0x74,
277 VirtualKeyCode::F6 => 0x75,
278 VirtualKeyCode::F7 => 0x76,
279 VirtualKeyCode::F8 => 0x77,
280 VirtualKeyCode::F9 => 0x78,
281 VirtualKeyCode::F10 => 0x79,
282 VirtualKeyCode::F11 => 0x7A,
283 VirtualKeyCode::F12 => 0x7B,
284 VirtualKeyCode::F13 => 0x7C,
285 VirtualKeyCode::F14 => 0x7D,
286 VirtualKeyCode::F15 => 0x7E,
287 VirtualKeyCode::F16 => 0x7F,
288 VirtualKeyCode::F17 => 0x80,
289 VirtualKeyCode::F18 => 0x81,
290 VirtualKeyCode::F19 => 0x82,
291 VirtualKeyCode::F20 => 0x83,
292 VirtualKeyCode::F21 => 0x84,
293 VirtualKeyCode::F22 => 0x85,
294 VirtualKeyCode::F23 => 0x86,
295 VirtualKeyCode::F24 => 0x87,
296 VirtualKeyCode::Numlock => 0x90,
297 VirtualKeyCode::Scroll => 0x91,
298 VirtualKeyCode::Lshift => 0xA0,
299 VirtualKeyCode::Rshift => 0xA1,
300 VirtualKeyCode::Lcontrol => 0xA2,
301 VirtualKeyCode::Rcontrol => 0xA3,
302 VirtualKeyCode::Lmenu => 0xA4,
303 VirtualKeyCode::Rmenu => 0xA5,
304 VirtualKeyCode::BrowserBack => 0xA6,
305 VirtualKeyCode::BrowserForward => 0xA7,
306 VirtualKeyCode::BrowserRefresh => 0xA8,
307 VirtualKeyCode::BrowserStop => 0xA9,
308 VirtualKeyCode::BrowserSearch => 0xAA,
309 VirtualKeyCode::BrowserFavorites => 0xAB,
310 VirtualKeyCode::BrowserHome => 0xAC,
311 VirtualKeyCode::VolumeMute => 0xAD,
312 VirtualKeyCode::VolumeDown => 0xAE,
313 VirtualKeyCode::VolumeUp => 0xAF,
314 VirtualKeyCode::MediaNextTrack => 0xB0,
315 VirtualKeyCode::MediaPrevTrack => 0xB1,
316 VirtualKeyCode::MediaStop => 0xB2,
317 VirtualKeyCode::MediaPlayPause => 0xB3,
318 VirtualKeyCode::MediaLaunchMail => 0xB4,
319 VirtualKeyCode::MediaLaunchMediaSelect => 0xB5,
320 VirtualKeyCode::MediaLaunchApp1 => 0xB6,
321 VirtualKeyCode::MediaLaunchApp2 => 0xB7,
322 VirtualKeyCode::Oem1 => 0xBA,
323 VirtualKeyCode::OemPlus => 0xBB,
324 VirtualKeyCode::OemComma => 0xBC,
325 VirtualKeyCode::OemMinus => 0xBD,
326 VirtualKeyCode::OemPeriod => 0xBE,
327 VirtualKeyCode::Oem2 => 0xBF,
328 VirtualKeyCode::Oem3 => 0xC0,
329 VirtualKeyCode::Oem4 => 0xDB,
330 VirtualKeyCode::Oem5 => 0xDC,
331 VirtualKeyCode::Oem6 => 0xDD,
332 VirtualKeyCode::Oem7 => 0xDE,
333 VirtualKeyCode::Oem8 => 0xDF,
334 VirtualKeyCode::Oem102 => 0xE2,
335 VirtualKeyCode::Processkey => 0xE5,
336 VirtualKeyCode::Packet => 0xE7,
337 VirtualKeyCode::OemAttn => 0xF0,
338 VirtualKeyCode::Attn => 0xF6,
339 VirtualKeyCode::Crsel => 0xF7,
340 VirtualKeyCode::Exsel => 0xF8,
341 VirtualKeyCode::Ereof => 0xF9,
342 VirtualKeyCode::Play => 0xFA,
343 VirtualKeyCode::Zoom => 0xFB,
344 VirtualKeyCode::Noname => 0xFC,
345 VirtualKeyCode::Pa1 => 0xFD,
346 VirtualKeyCode::OemClear => 0xFE,
347 VirtualKeyCode::Unknown => 0,
348 }
349 }
350}