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 #[cfg(feature = "Win32_Foundation")]
19 pub fn DefRawInputProc(parawinput
: *const *const RAWINPUT
, ninput
: i32, cbsizeheader
: u32) -> super::super::Foundation
::LRESULT
;
20 #[cfg(feature = "Win32_Foundation")]
21 pub fn GetCIMSSM(inputmessagesource
: *mut INPUT_MESSAGE_SOURCE
) -> super::super::Foundation
::BOOL
;
22 #[cfg(feature = "Win32_Foundation")]
23 pub fn GetCurrentInputMessageSource(inputmessagesource
: *mut INPUT_MESSAGE_SOURCE
) -> super::super::Foundation
::BOOL
;
24 #[cfg(feature = "Win32_Foundation")]
25 pub fn GetRawInputBuffer(pdata
: *mut RAWINPUT
, pcbsize
: *mut u32, cbsizeheader
: u32) -> u32;
26 pub fn GetRawInputData(hrawinput
: HRAWINPUT
, uicommand
: RAW_INPUT_DATA_COMMAND_FLAGS
, pdata
: *mut ::core
::ffi
::c_void
, pcbsize
: *mut u32, cbsizeheader
: u32) -> u32;
27 #[cfg(feature = "Win32_Foundation")]
28 pub fn GetRawInputDeviceInfoA(hdevice
: super::super::Foundation
::HANDLE
, uicommand
: RAW_INPUT_DEVICE_INFO_COMMAND
, pdata
: *mut ::core
::ffi
::c_void
, pcbsize
: *mut u32) -> u32;
29 #[cfg(feature = "Win32_Foundation")]
30 pub fn GetRawInputDeviceInfoW(hdevice
: super::super::Foundation
::HANDLE
, uicommand
: RAW_INPUT_DEVICE_INFO_COMMAND
, pdata
: *mut ::core
::ffi
::c_void
, pcbsize
: *mut u32) -> u32;
31 #[cfg(feature = "Win32_Foundation")]
32 pub fn GetRawInputDeviceList(prawinputdevicelist
: *mut RAWINPUTDEVICELIST
, puinumdevices
: *mut u32, cbsize
: u32) -> u32;
33 #[cfg(feature = "Win32_Foundation")]
34 pub fn GetRegisteredRawInputDevices(prawinputdevices
: *mut RAWINPUTDEVICE
, puinumdevices
: *mut u32, cbsize
: u32) -> u32;
35 #[cfg(feature = "Win32_Foundation")]
36 pub fn RegisterRawInputDevices(prawinputdevices
: *const RAWINPUTDEVICE
, uinumdevices
: u32, cbsize
: u32) -> super::super::Foundation
::BOOL
;
38 pub type HRAWINPUT
= isize;
39 pub type INPUT_MESSAGE_DEVICE_TYPE
= i32;
40 pub const IMDT_UNAVAILABLE
: INPUT_MESSAGE_DEVICE_TYPE
= 0i32;
41 pub const IMDT_KEYBOARD
: INPUT_MESSAGE_DEVICE_TYPE
= 1i32;
42 pub const IMDT_MOUSE
: INPUT_MESSAGE_DEVICE_TYPE
= 2i32;
43 pub const IMDT_TOUCH
: INPUT_MESSAGE_DEVICE_TYPE
= 4i32;
44 pub const IMDT_PEN
: INPUT_MESSAGE_DEVICE_TYPE
= 8i32;
45 pub const IMDT_TOUCHPAD
: INPUT_MESSAGE_DEVICE_TYPE
= 16i32;
46 pub type INPUT_MESSAGE_ORIGIN_ID
= i32;
47 pub const IMO_UNAVAILABLE
: INPUT_MESSAGE_ORIGIN_ID
= 0i32;
48 pub const IMO_HARDWARE
: INPUT_MESSAGE_ORIGIN_ID
= 1i32;
49 pub const IMO_INJECTED
: INPUT_MESSAGE_ORIGIN_ID
= 2i32;
50 pub const IMO_SYSTEM
: INPUT_MESSAGE_ORIGIN_ID
= 4i32;
52 pub struct INPUT_MESSAGE_SOURCE
{
53 pub deviceType
: INPUT_MESSAGE_DEVICE_TYPE
,
54 pub originId
: INPUT_MESSAGE_ORIGIN_ID
,
56 impl ::core
::marker
::Copy
for INPUT_MESSAGE_SOURCE {}
57 impl ::core
::clone
::Clone
for INPUT_MESSAGE_SOURCE
{
58 fn clone(&self) -> Self {
66 pub bRawData
: [u8; 1],
68 impl ::core
::marker
::Copy
for RAWHID {}
69 impl ::core
::clone
::Clone
for RAWHID
{
70 fn clone(&self) -> Self {
75 #[cfg(feature = "Win32_Foundation")]
77 pub header
: RAWINPUTHEADER
,
80 #[cfg(feature = "Win32_Foundation")]
81 impl ::core
::marker
::Copy
for RAWINPUT {}
82 #[cfg(feature = "Win32_Foundation")]
83 impl ::core
::clone
::Clone
for RAWINPUT
{
84 fn clone(&self) -> Self {
89 #[cfg(feature = "Win32_Foundation")]
90 pub union RAWINPUT_0
{
92 pub keyboard
: RAWKEYBOARD
,
95 #[cfg(feature = "Win32_Foundation")]
96 impl ::core
::marker
::Copy
for RAWINPUT_0 {}
97 #[cfg(feature = "Win32_Foundation")]
98 impl ::core
::clone
::Clone
for RAWINPUT_0
{
99 fn clone(&self) -> Self {
104 #[cfg(feature = "Win32_Foundation")]
105 pub struct RAWINPUTDEVICE
{
106 pub usUsagePage
: u16,
108 pub dwFlags
: RAWINPUTDEVICE_FLAGS
,
109 pub hwndTarget
: super::super::Foundation
::HWND
,
111 #[cfg(feature = "Win32_Foundation")]
112 impl ::core
::marker
::Copy
for RAWINPUTDEVICE {}
113 #[cfg(feature = "Win32_Foundation")]
114 impl ::core
::clone
::Clone
for RAWINPUTDEVICE
{
115 fn clone(&self) -> Self {
120 #[cfg(feature = "Win32_Foundation")]
121 pub struct RAWINPUTDEVICELIST
{
122 pub hDevice
: super::super::Foundation
::HANDLE
,
123 pub dwType
: RID_DEVICE_INFO_TYPE
,
125 #[cfg(feature = "Win32_Foundation")]
126 impl ::core
::marker
::Copy
for RAWINPUTDEVICELIST {}
127 #[cfg(feature = "Win32_Foundation")]
128 impl ::core
::clone
::Clone
for RAWINPUTDEVICELIST
{
129 fn clone(&self) -> Self {
133 pub type RAWINPUTDEVICE_FLAGS
= u32;
134 pub const RIDEV_REMOVE
: RAWINPUTDEVICE_FLAGS
= 1u32;
135 pub const RIDEV_EXCLUDE
: RAWINPUTDEVICE_FLAGS
= 16u32;
136 pub const RIDEV_PAGEONLY
: RAWINPUTDEVICE_FLAGS
= 32u32;
137 pub const RIDEV_NOLEGACY
: RAWINPUTDEVICE_FLAGS
= 48u32;
138 pub const RIDEV_INPUTSINK
: RAWINPUTDEVICE_FLAGS
= 256u32;
139 pub const RIDEV_CAPTUREMOUSE
: RAWINPUTDEVICE_FLAGS
= 512u32;
140 pub const RIDEV_NOHOTKEYS
: RAWINPUTDEVICE_FLAGS
= 512u32;
141 pub const RIDEV_APPKEYS
: RAWINPUTDEVICE_FLAGS
= 1024u32;
142 pub const RIDEV_EXINPUTSINK
: RAWINPUTDEVICE_FLAGS
= 4096u32;
143 pub const RIDEV_DEVNOTIFY
: RAWINPUTDEVICE_FLAGS
= 8192u32;
145 #[cfg(feature = "Win32_Foundation")]
146 pub struct RAWINPUTHEADER
{
149 pub hDevice
: super::super::Foundation
::HANDLE
,
150 pub wParam
: super::super::Foundation
::WPARAM
,
152 #[cfg(feature = "Win32_Foundation")]
153 impl ::core
::marker
::Copy
for RAWINPUTHEADER {}
154 #[cfg(feature = "Win32_Foundation")]
155 impl ::core
::clone
::Clone
for RAWINPUTHEADER
{
156 fn clone(&self) -> Self {
161 pub struct RAWKEYBOARD
{
167 pub ExtraInformation
: u32,
169 impl ::core
::marker
::Copy
for RAWKEYBOARD {}
170 impl ::core
::clone
::Clone
for RAWKEYBOARD
{
171 fn clone(&self) -> Self {
176 pub struct RAWMOUSE
{
178 pub Anonymous
: RAWMOUSE_0
,
179 pub ulRawButtons
: u32,
182 pub ulExtraInformation
: u32,
184 impl ::core
::marker
::Copy
for RAWMOUSE {}
185 impl ::core
::clone
::Clone
for RAWMOUSE
{
186 fn clone(&self) -> Self {
191 pub union RAWMOUSE_0
{
193 pub Anonymous
: RAWMOUSE_0_0
,
195 impl ::core
::marker
::Copy
for RAWMOUSE_0 {}
196 impl ::core
::clone
::Clone
for RAWMOUSE_0
{
197 fn clone(&self) -> Self {
202 pub struct RAWMOUSE_0_0
{
203 pub usButtonFlags
: u16,
204 pub usButtonData
: u16,
206 impl ::core
::marker
::Copy
for RAWMOUSE_0_0 {}
207 impl ::core
::clone
::Clone
for RAWMOUSE_0_0
{
208 fn clone(&self) -> Self {
212 pub type RAW_INPUT_DATA_COMMAND_FLAGS
= u32;
213 pub const RID_HEADER
: RAW_INPUT_DATA_COMMAND_FLAGS
= 268435461u32;
214 pub const RID_INPUT
: RAW_INPUT_DATA_COMMAND_FLAGS
= 268435459u32;
215 pub type RAW_INPUT_DEVICE_INFO_COMMAND
= u32;
216 pub const RIDI_PREPARSEDDATA
: RAW_INPUT_DEVICE_INFO_COMMAND
= 536870917u32;
217 pub const RIDI_DEVICENAME
: RAW_INPUT_DEVICE_INFO_COMMAND
= 536870919u32;
218 pub const RIDI_DEVICEINFO
: RAW_INPUT_DEVICE_INFO_COMMAND
= 536870923u32;
220 #[cfg(feature = "Win32_Foundation")]
221 pub struct RID_DEVICE_INFO
{
223 pub dwType
: RID_DEVICE_INFO_TYPE
,
224 pub Anonymous
: RID_DEVICE_INFO_0
,
226 #[cfg(feature = "Win32_Foundation")]
227 impl ::core
::marker
::Copy
for RID_DEVICE_INFO {}
228 #[cfg(feature = "Win32_Foundation")]
229 impl ::core
::clone
::Clone
for RID_DEVICE_INFO
{
230 fn clone(&self) -> Self {
235 #[cfg(feature = "Win32_Foundation")]
236 pub union RID_DEVICE_INFO_0
{
237 pub mouse
: RID_DEVICE_INFO_MOUSE
,
238 pub keyboard
: RID_DEVICE_INFO_KEYBOARD
,
239 pub hid
: RID_DEVICE_INFO_HID
,
241 #[cfg(feature = "Win32_Foundation")]
242 impl ::core
::marker
::Copy
for RID_DEVICE_INFO_0 {}
243 #[cfg(feature = "Win32_Foundation")]
244 impl ::core
::clone
::Clone
for RID_DEVICE_INFO_0
{
245 fn clone(&self) -> Self {
250 pub struct RID_DEVICE_INFO_HID
{
252 pub dwProductId
: u32,
253 pub dwVersionNumber
: u32,
254 pub usUsagePage
: u16,
257 impl ::core
::marker
::Copy
for RID_DEVICE_INFO_HID {}
258 impl ::core
::clone
::Clone
for RID_DEVICE_INFO_HID
{
259 fn clone(&self) -> Self {
264 pub struct RID_DEVICE_INFO_KEYBOARD
{
267 pub dwKeyboardMode
: u32,
268 pub dwNumberOfFunctionKeys
: u32,
269 pub dwNumberOfIndicators
: u32,
270 pub dwNumberOfKeysTotal
: u32,
272 impl ::core
::marker
::Copy
for RID_DEVICE_INFO_KEYBOARD {}
273 impl ::core
::clone
::Clone
for RID_DEVICE_INFO_KEYBOARD
{
274 fn clone(&self) -> Self {
279 #[cfg(feature = "Win32_Foundation")]
280 pub struct RID_DEVICE_INFO_MOUSE
{
282 pub dwNumberOfButtons
: u32,
283 pub dwSampleRate
: u32,
284 pub fHasHorizontalWheel
: super::super::Foundation
::BOOL
,
286 #[cfg(feature = "Win32_Foundation")]
287 impl ::core
::marker
::Copy
for RID_DEVICE_INFO_MOUSE {}
288 #[cfg(feature = "Win32_Foundation")]
289 impl ::core
::clone
::Clone
for RID_DEVICE_INFO_MOUSE
{
290 fn clone(&self) -> Self {
294 pub type RID_DEVICE_INFO_TYPE
= u32;
295 pub const RIM_TYPEMOUSE
: RID_DEVICE_INFO_TYPE
= 0u32;
296 pub const RIM_TYPEKEYBOARD
: RID_DEVICE_INFO_TYPE
= 1u32;
297 pub const RIM_TYPEHID
: RID_DEVICE_INFO_TYPE
= 2u32;