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")]
4 #[cfg(feature = "Win32_UI_Input_Ink")]
6 #[cfg(feature = "Win32_UI_Input_KeyboardAndMouse")]
7 pub mod KeyboardAndMouse
;
8 #[cfg(feature = "Win32_UI_Input_Pointer")]
10 #[cfg(feature = "Win32_UI_Input_Radial")]
12 #[cfg(feature = "Win32_UI_Input_Touch")]
14 #[cfg(feature = "Win32_UI_Input_XboxController")]
15 pub mod XboxController
;
16 #[link(name = "windows")]
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
;
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;
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
,
79 impl ::core
::marker
::Copy
for INPUT_MESSAGE_SOURCE {}
80 impl ::core
::clone
::Clone
for INPUT_MESSAGE_SOURCE
{
81 fn clone(&self) -> Self {
86 #[doc = "*Required features: 'Win32_UI_Input'*"]
90 pub bRawData
: [u8; 1],
92 impl ::core
::marker
::Copy
for RAWHID {}
93 impl ::core
::clone
::Clone
for RAWHID
{
94 fn clone(&self) -> Self {
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
,
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 {
114 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
115 #[cfg(feature = "Win32_Foundation")]
116 pub union RAWINPUT_0
{
118 pub keyboard
: RAWKEYBOARD
,
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 {
130 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
131 #[cfg(feature = "Win32_Foundation")]
132 pub struct RAWINPUTDEVICE
{
133 pub usUsagePage
: u16,
135 pub dwFlags
: RAWINPUTDEVICE_FLAGS
,
136 pub hwndTarget
: super::super::Foundation
::HWND
,
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 {
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
,
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 {
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;
184 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
185 #[cfg(feature = "Win32_Foundation")]
186 pub struct RAWINPUTHEADER
{
189 pub hDevice
: super::super::Foundation
::HANDLE
,
190 pub wParam
: super::super::Foundation
::WPARAM
,
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 {
201 #[doc = "*Required features: 'Win32_UI_Input'*"]
202 pub struct RAWKEYBOARD
{
208 pub ExtraInformation
: u32,
210 impl ::core
::marker
::Copy
for RAWKEYBOARD {}
211 impl ::core
::clone
::Clone
for RAWKEYBOARD
{
212 fn clone(&self) -> Self {
217 #[doc = "*Required features: 'Win32_UI_Input'*"]
218 pub struct RAWMOUSE
{
220 pub Anonymous
: RAWMOUSE_0
,
221 pub ulRawButtons
: u32,
224 pub ulExtraInformation
: u32,
226 impl ::core
::marker
::Copy
for RAWMOUSE {}
227 impl ::core
::clone
::Clone
for RAWMOUSE
{
228 fn clone(&self) -> Self {
233 #[doc = "*Required features: 'Win32_UI_Input'*"]
234 pub union RAWMOUSE_0
{
236 pub Anonymous
: RAWMOUSE_0_0
,
238 impl ::core
::marker
::Copy
for RAWMOUSE_0 {}
239 impl ::core
::clone
::Clone
for RAWMOUSE_0
{
240 fn clone(&self) -> Self {
245 #[doc = "*Required features: 'Win32_UI_Input'*"]
246 pub struct RAWMOUSE_0_0
{
247 pub usButtonFlags
: u16,
248 pub usButtonData
: u16,
250 impl ::core
::marker
::Copy
for RAWMOUSE_0_0 {}
251 impl ::core
::clone
::Clone
for RAWMOUSE_0_0
{
252 fn clone(&self) -> Self {
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;
271 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
272 #[cfg(feature = "Win32_Foundation")]
273 pub struct RID_DEVICE_INFO
{
275 pub dwType
: RID_DEVICE_INFO_TYPE
,
276 pub Anonymous
: RID_DEVICE_INFO_0
,
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 {
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
,
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 {
303 #[doc = "*Required features: 'Win32_UI_Input'*"]
304 pub struct RID_DEVICE_INFO_HID
{
306 pub dwProductId
: u32,
307 pub dwVersionNumber
: u32,
308 pub usUsagePage
: u16,
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 {
318 #[doc = "*Required features: 'Win32_UI_Input'*"]
319 pub struct RID_DEVICE_INFO_KEYBOARD
{
322 pub dwKeyboardMode
: u32,
323 pub dwNumberOfFunctionKeys
: u32,
324 pub dwNumberOfIndicators
: u32,
325 pub dwNumberOfKeysTotal
: u32,
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 {
334 #[doc = "*Required features: 'Win32_UI_Input', 'Win32_Foundation'*"]
335 #[cfg(feature = "Win32_Foundation")]
336 pub struct RID_DEVICE_INFO_MOUSE
{
338 pub dwNumberOfButtons
: u32,
339 pub dwSampleRate
: u32,
340 pub fHasHorizontalWheel
: super::super::Foundation
::BOOL
,
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 {
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;