]> git.proxmox.com Git - rustc.git/blob - vendor/windows-sys/src/Windows/Win32/UI/Input/mod.rs
New upstream version 1.61.0+dfsg1
[rustc.git] / vendor / windows-sys / src / Windows / Win32 / UI / Input / mod.rs
1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2 #[cfg(feature = "Win32_UI_Input_Ime")]
3 pub mod Ime;
4 #[cfg(feature = "Win32_UI_Input_Ink")]
5 pub mod Ink;
6 #[cfg(feature = "Win32_UI_Input_KeyboardAndMouse")]
7 pub mod KeyboardAndMouse;
8 #[cfg(feature = "Win32_UI_Input_Pointer")]
9 pub mod Pointer;
10 #[cfg(feature = "Win32_UI_Input_Radial")]
11 pub mod Radial;
12 #[cfg(feature = "Win32_UI_Input_Touch")]
13 pub mod Touch;
14 #[cfg(feature = "Win32_UI_Input_XboxController")]
15 pub mod XboxController;
16 #[link(name = "windows")]
17 extern "system" {
18 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
19 #[cfg(feature = "Win32_Foundation")]
20 pub fn DefRawInputProc(parawinput: *const *const RAWINPUT, ninput: i32, cbsizeheader: u32) -> super::super::Foundation::LRESULT;
21 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
22 #[cfg(feature = "Win32_Foundation")]
23 pub fn GetCIMSSM(inputmessagesource: *mut INPUT_MESSAGE_SOURCE) -> super::super::Foundation::BOOL;
24 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
25 #[cfg(feature = "Win32_Foundation")]
26 pub fn GetCurrentInputMessageSource(inputmessagesource: *mut INPUT_MESSAGE_SOURCE) -> super::super::Foundation::BOOL;
27 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
28 #[cfg(feature = "Win32_Foundation")]
29 pub fn GetRawInputBuffer(pdata: *mut RAWINPUT, pcbsize: *mut u32, cbsizeheader: u32) -> u32;
30 #[doc = "*Required features: 'Win32_UI_Input'*"]
31 pub fn GetRawInputData(hrawinput: HRAWINPUT, uicommand: RAW_INPUT_DATA_COMMAND_FLAGS, pdata: *mut ::core::ffi::c_void, pcbsize: *mut u32, cbsizeheader: u32) -> u32;
32 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
33 #[cfg(feature = "Win32_Foundation")]
34 pub fn GetRawInputDeviceInfoA(hdevice: super::super::Foundation::HANDLE, uicommand: RAW_INPUT_DEVICE_INFO_COMMAND, pdata: *mut ::core::ffi::c_void, pcbsize: *mut u32) -> u32;
35 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
36 #[cfg(feature = "Win32_Foundation")]
37 pub fn GetRawInputDeviceInfoW(hdevice: super::super::Foundation::HANDLE, uicommand: RAW_INPUT_DEVICE_INFO_COMMAND, pdata: *mut ::core::ffi::c_void, pcbsize: *mut u32) -> u32;
38 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
39 #[cfg(feature = "Win32_Foundation")]
40 pub fn GetRawInputDeviceList(prawinputdevicelist: *mut RAWINPUTDEVICELIST, puinumdevices: *mut u32, cbsize: u32) -> u32;
41 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
42 #[cfg(feature = "Win32_Foundation")]
43 pub fn GetRegisteredRawInputDevices(prawinputdevices: *mut RAWINPUTDEVICE, puinumdevices: *mut u32, cbsize: u32) -> u32;
44 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
45 #[cfg(feature = "Win32_Foundation")]
46 pub fn RegisterRawInputDevices(prawinputdevices: *const RAWINPUTDEVICE, uinumdevices: u32, cbsize: u32) -> super::super::Foundation::BOOL;
47 }
48 pub type HRAWINPUT = isize;
49 #[doc = "*Required features: 'Win32_UI_Input'*"]
50 pub type INPUT_MESSAGE_DEVICE_TYPE = i32;
51 #[doc = "*Required features: 'Win32_UI_Input'*"]
52 pub const IMDT_UNAVAILABLE: INPUT_MESSAGE_DEVICE_TYPE = 0i32;
53 #[doc = "*Required features: 'Win32_UI_Input'*"]
54 pub const IMDT_KEYBOARD: INPUT_MESSAGE_DEVICE_TYPE = 1i32;
55 #[doc = "*Required features: 'Win32_UI_Input'*"]
56 pub const IMDT_MOUSE: INPUT_MESSAGE_DEVICE_TYPE = 2i32;
57 #[doc = "*Required features: 'Win32_UI_Input'*"]
58 pub const IMDT_TOUCH: INPUT_MESSAGE_DEVICE_TYPE = 4i32;
59 #[doc = "*Required features: 'Win32_UI_Input'*"]
60 pub const IMDT_PEN: INPUT_MESSAGE_DEVICE_TYPE = 8i32;
61 #[doc = "*Required features: 'Win32_UI_Input'*"]
62 pub const IMDT_TOUCHPAD: INPUT_MESSAGE_DEVICE_TYPE = 16i32;
63 #[doc = "*Required features: 'Win32_UI_Input'*"]
64 pub type INPUT_MESSAGE_ORIGIN_ID = i32;
65 #[doc = "*Required features: 'Win32_UI_Input'*"]
66 pub const IMO_UNAVAILABLE: INPUT_MESSAGE_ORIGIN_ID = 0i32;
67 #[doc = "*Required features: 'Win32_UI_Input'*"]
68 pub const IMO_HARDWARE: INPUT_MESSAGE_ORIGIN_ID = 1i32;
69 #[doc = "*Required features: 'Win32_UI_Input'*"]
70 pub const IMO_INJECTED: INPUT_MESSAGE_ORIGIN_ID = 2i32;
71 #[doc = "*Required features: 'Win32_UI_Input'*"]
72 pub const IMO_SYSTEM: INPUT_MESSAGE_ORIGIN_ID = 4i32;
73 #[repr(C)]
74 #[doc = "*Required features: 'Win32_UI_Input'*"]
75 pub struct INPUT_MESSAGE_SOURCE {
76 pub deviceType: INPUT_MESSAGE_DEVICE_TYPE,
77 pub originId: INPUT_MESSAGE_ORIGIN_ID,
78 }
79 impl ::core::marker::Copy for INPUT_MESSAGE_SOURCE {}
80 impl ::core::clone::Clone for INPUT_MESSAGE_SOURCE {
81 fn clone(&self) -> Self {
82 *self
83 }
84 }
85 #[repr(C)]
86 #[doc = "*Required features: 'Win32_UI_Input'*"]
87 pub struct RAWHID {
88 pub dwSizeHid: u32,
89 pub dwCount: u32,
90 pub bRawData: [u8; 1],
91 }
92 impl ::core::marker::Copy for RAWHID {}
93 impl ::core::clone::Clone for RAWHID {
94 fn clone(&self) -> Self {
95 *self
96 }
97 }
98 #[repr(C)]
99 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
100 #[cfg(feature = "Win32_Foundation")]
101 pub struct RAWINPUT {
102 pub header: RAWINPUTHEADER,
103 pub data: RAWINPUT_0,
104 }
105 #[cfg(feature = "Win32_Foundation")]
106 impl ::core::marker::Copy for RAWINPUT {}
107 #[cfg(feature = "Win32_Foundation")]
108 impl ::core::clone::Clone for RAWINPUT {
109 fn clone(&self) -> Self {
110 *self
111 }
112 }
113 #[repr(C)]
114 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
115 #[cfg(feature = "Win32_Foundation")]
116 pub union RAWINPUT_0 {
117 pub mouse: RAWMOUSE,
118 pub keyboard: RAWKEYBOARD,
119 pub hid: RAWHID,
120 }
121 #[cfg(feature = "Win32_Foundation")]
122 impl ::core::marker::Copy for RAWINPUT_0 {}
123 #[cfg(feature = "Win32_Foundation")]
124 impl ::core::clone::Clone for RAWINPUT_0 {
125 fn clone(&self) -> Self {
126 *self
127 }
128 }
129 #[repr(C)]
130 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
131 #[cfg(feature = "Win32_Foundation")]
132 pub struct RAWINPUTDEVICE {
133 pub usUsagePage: u16,
134 pub usUsage: u16,
135 pub dwFlags: RAWINPUTDEVICE_FLAGS,
136 pub hwndTarget: super::super::Foundation::HWND,
137 }
138 #[cfg(feature = "Win32_Foundation")]
139 impl ::core::marker::Copy for RAWINPUTDEVICE {}
140 #[cfg(feature = "Win32_Foundation")]
141 impl ::core::clone::Clone for RAWINPUTDEVICE {
142 fn clone(&self) -> Self {
143 *self
144 }
145 }
146 #[repr(C)]
147 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
148 #[cfg(feature = "Win32_Foundation")]
149 pub struct RAWINPUTDEVICELIST {
150 pub hDevice: super::super::Foundation::HANDLE,
151 pub dwType: RID_DEVICE_INFO_TYPE,
152 }
153 #[cfg(feature = "Win32_Foundation")]
154 impl ::core::marker::Copy for RAWINPUTDEVICELIST {}
155 #[cfg(feature = "Win32_Foundation")]
156 impl ::core::clone::Clone for RAWINPUTDEVICELIST {
157 fn clone(&self) -> Self {
158 *self
159 }
160 }
161 #[doc = "*Required features: 'Win32_UI_Input'*"]
162 pub type RAWINPUTDEVICE_FLAGS = u32;
163 #[doc = "*Required features: 'Win32_UI_Input'*"]
164 pub const RIDEV_REMOVE: RAWINPUTDEVICE_FLAGS = 1u32;
165 #[doc = "*Required features: 'Win32_UI_Input'*"]
166 pub const RIDEV_EXCLUDE: RAWINPUTDEVICE_FLAGS = 16u32;
167 #[doc = "*Required features: 'Win32_UI_Input'*"]
168 pub const RIDEV_PAGEONLY: RAWINPUTDEVICE_FLAGS = 32u32;
169 #[doc = "*Required features: 'Win32_UI_Input'*"]
170 pub const RIDEV_NOLEGACY: RAWINPUTDEVICE_FLAGS = 48u32;
171 #[doc = "*Required features: 'Win32_UI_Input'*"]
172 pub const RIDEV_INPUTSINK: RAWINPUTDEVICE_FLAGS = 256u32;
173 #[doc = "*Required features: 'Win32_UI_Input'*"]
174 pub const RIDEV_CAPTUREMOUSE: RAWINPUTDEVICE_FLAGS = 512u32;
175 #[doc = "*Required features: 'Win32_UI_Input'*"]
176 pub const RIDEV_NOHOTKEYS: RAWINPUTDEVICE_FLAGS = 512u32;
177 #[doc = "*Required features: 'Win32_UI_Input'*"]
178 pub const RIDEV_APPKEYS: RAWINPUTDEVICE_FLAGS = 1024u32;
179 #[doc = "*Required features: 'Win32_UI_Input'*"]
180 pub const RIDEV_EXINPUTSINK: RAWINPUTDEVICE_FLAGS = 4096u32;
181 #[doc = "*Required features: 'Win32_UI_Input'*"]
182 pub const RIDEV_DEVNOTIFY: RAWINPUTDEVICE_FLAGS = 8192u32;
183 #[repr(C)]
184 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
185 #[cfg(feature = "Win32_Foundation")]
186 pub struct RAWINPUTHEADER {
187 pub dwType: u32,
188 pub dwSize: u32,
189 pub hDevice: super::super::Foundation::HANDLE,
190 pub wParam: super::super::Foundation::WPARAM,
191 }
192 #[cfg(feature = "Win32_Foundation")]
193 impl ::core::marker::Copy for RAWINPUTHEADER {}
194 #[cfg(feature = "Win32_Foundation")]
195 impl ::core::clone::Clone for RAWINPUTHEADER {
196 fn clone(&self) -> Self {
197 *self
198 }
199 }
200 #[repr(C)]
201 #[doc = "*Required features: 'Win32_UI_Input'*"]
202 pub struct RAWKEYBOARD {
203 pub MakeCode: u16,
204 pub Flags: u16,
205 pub Reserved: u16,
206 pub VKey: u16,
207 pub Message: u32,
208 pub ExtraInformation: u32,
209 }
210 impl ::core::marker::Copy for RAWKEYBOARD {}
211 impl ::core::clone::Clone for RAWKEYBOARD {
212 fn clone(&self) -> Self {
213 *self
214 }
215 }
216 #[repr(C)]
217 #[doc = "*Required features: 'Win32_UI_Input'*"]
218 pub struct RAWMOUSE {
219 pub usFlags: u16,
220 pub Anonymous: RAWMOUSE_0,
221 pub ulRawButtons: u32,
222 pub lLastX: i32,
223 pub lLastY: i32,
224 pub ulExtraInformation: u32,
225 }
226 impl ::core::marker::Copy for RAWMOUSE {}
227 impl ::core::clone::Clone for RAWMOUSE {
228 fn clone(&self) -> Self {
229 *self
230 }
231 }
232 #[repr(C)]
233 #[doc = "*Required features: 'Win32_UI_Input'*"]
234 pub union RAWMOUSE_0 {
235 pub ulButtons: u32,
236 pub Anonymous: RAWMOUSE_0_0,
237 }
238 impl ::core::marker::Copy for RAWMOUSE_0 {}
239 impl ::core::clone::Clone for RAWMOUSE_0 {
240 fn clone(&self) -> Self {
241 *self
242 }
243 }
244 #[repr(C)]
245 #[doc = "*Required features: 'Win32_UI_Input'*"]
246 pub struct RAWMOUSE_0_0 {
247 pub usButtonFlags: u16,
248 pub usButtonData: u16,
249 }
250 impl ::core::marker::Copy for RAWMOUSE_0_0 {}
251 impl ::core::clone::Clone for RAWMOUSE_0_0 {
252 fn clone(&self) -> Self {
253 *self
254 }
255 }
256 #[doc = "*Required features: 'Win32_UI_Input'*"]
257 pub type RAW_INPUT_DATA_COMMAND_FLAGS = u32;
258 #[doc = "*Required features: 'Win32_UI_Input'*"]
259 pub const RID_HEADER: RAW_INPUT_DATA_COMMAND_FLAGS = 268435461u32;
260 #[doc = "*Required features: 'Win32_UI_Input'*"]
261 pub const RID_INPUT: RAW_INPUT_DATA_COMMAND_FLAGS = 268435459u32;
262 #[doc = "*Required features: 'Win32_UI_Input'*"]
263 pub type RAW_INPUT_DEVICE_INFO_COMMAND = u32;
264 #[doc = "*Required features: 'Win32_UI_Input'*"]
265 pub const RIDI_PREPARSEDDATA: RAW_INPUT_DEVICE_INFO_COMMAND = 536870917u32;
266 #[doc = "*Required features: 'Win32_UI_Input'*"]
267 pub const RIDI_DEVICENAME: RAW_INPUT_DEVICE_INFO_COMMAND = 536870919u32;
268 #[doc = "*Required features: 'Win32_UI_Input'*"]
269 pub const RIDI_DEVICEINFO: RAW_INPUT_DEVICE_INFO_COMMAND = 536870923u32;
270 #[repr(C)]
271 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
272 #[cfg(feature = "Win32_Foundation")]
273 pub struct RID_DEVICE_INFO {
274 pub cbSize: u32,
275 pub dwType: RID_DEVICE_INFO_TYPE,
276 pub Anonymous: RID_DEVICE_INFO_0,
277 }
278 #[cfg(feature = "Win32_Foundation")]
279 impl ::core::marker::Copy for RID_DEVICE_INFO {}
280 #[cfg(feature = "Win32_Foundation")]
281 impl ::core::clone::Clone for RID_DEVICE_INFO {
282 fn clone(&self) -> Self {
283 *self
284 }
285 }
286 #[repr(C)]
287 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
288 #[cfg(feature = "Win32_Foundation")]
289 pub union RID_DEVICE_INFO_0 {
290 pub mouse: RID_DEVICE_INFO_MOUSE,
291 pub keyboard: RID_DEVICE_INFO_KEYBOARD,
292 pub hid: RID_DEVICE_INFO_HID,
293 }
294 #[cfg(feature = "Win32_Foundation")]
295 impl ::core::marker::Copy for RID_DEVICE_INFO_0 {}
296 #[cfg(feature = "Win32_Foundation")]
297 impl ::core::clone::Clone for RID_DEVICE_INFO_0 {
298 fn clone(&self) -> Self {
299 *self
300 }
301 }
302 #[repr(C)]
303 #[doc = "*Required features: 'Win32_UI_Input'*"]
304 pub struct RID_DEVICE_INFO_HID {
305 pub dwVendorId: u32,
306 pub dwProductId: u32,
307 pub dwVersionNumber: u32,
308 pub usUsagePage: u16,
309 pub usUsage: u16,
310 }
311 impl ::core::marker::Copy for RID_DEVICE_INFO_HID {}
312 impl ::core::clone::Clone for RID_DEVICE_INFO_HID {
313 fn clone(&self) -> Self {
314 *self
315 }
316 }
317 #[repr(C)]
318 #[doc = "*Required features: 'Win32_UI_Input'*"]
319 pub struct RID_DEVICE_INFO_KEYBOARD {
320 pub dwType: u32,
321 pub dwSubType: u32,
322 pub dwKeyboardMode: u32,
323 pub dwNumberOfFunctionKeys: u32,
324 pub dwNumberOfIndicators: u32,
325 pub dwNumberOfKeysTotal: u32,
326 }
327 impl ::core::marker::Copy for RID_DEVICE_INFO_KEYBOARD {}
328 impl ::core::clone::Clone for RID_DEVICE_INFO_KEYBOARD {
329 fn clone(&self) -> Self {
330 *self
331 }
332 }
333 #[repr(C)]
334 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
335 #[cfg(feature = "Win32_Foundation")]
336 pub struct RID_DEVICE_INFO_MOUSE {
337 pub dwId: u32,
338 pub dwNumberOfButtons: u32,
339 pub dwSampleRate: u32,
340 pub fHasHorizontalWheel: super::super::Foundation::BOOL,
341 }
342 #[cfg(feature = "Win32_Foundation")]
343 impl ::core::marker::Copy for RID_DEVICE_INFO_MOUSE {}
344 #[cfg(feature = "Win32_Foundation")]
345 impl ::core::clone::Clone for RID_DEVICE_INFO_MOUSE {
346 fn clone(&self) -> Self {
347 *self
348 }
349 }
350 #[doc = "*Required features: 'Win32_UI_Input'*"]
351 pub type RID_DEVICE_INFO_TYPE = u32;
352 #[doc = "*Required features: 'Win32_UI_Input'*"]
353 pub const RIM_TYPEMOUSE: RID_DEVICE_INFO_TYPE = 0u32;
354 #[doc = "*Required features: 'Win32_UI_Input'*"]
355 pub const RIM_TYPEKEYBOARD: RID_DEVICE_INFO_TYPE = 1u32;
356 #[doc = "*Required features: 'Win32_UI_Input'*"]
357 pub const RIM_TYPEHID: RID_DEVICE_INFO_TYPE = 2u32;