#[cfg(feature = "Win32_UI_Input_Ime")] pub mod Ime; #[cfg(feature = "Win32_UI_Input_Ink")] pub mod Ink; #[cfg(feature = "Win32_UI_Input_KeyboardAndMouse")] pub mod KeyboardAndMouse; #[cfg(feature = "Win32_UI_Input_Pointer")] pub mod Pointer; #[cfg(feature = "Win32_UI_Input_Radial")] pub mod Radial; #[cfg(feature = "Win32_UI_Input_Touch")] pub mod Touch; #[cfg(feature = "Win32_UI_Input_XboxController")] pub mod XboxController; #[link(name = "windows")] extern "system" { #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn DefRawInputProc(parawinput: *const *const RAWINPUT, ninput: i32, cbsizeheader: u32) -> super::super::Foundation::LRESULT; #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn GetCIMSSM(inputmessagesource: *mut INPUT_MESSAGE_SOURCE) -> super::super::Foundation::BOOL; #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn GetCurrentInputMessageSource(inputmessagesource: *mut INPUT_MESSAGE_SOURCE) -> super::super::Foundation::BOOL; #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn GetRawInputBuffer(pdata: *mut RAWINPUT, pcbsize: *mut u32, cbsizeheader: u32) -> u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub fn GetRawInputData(hrawinput: HRAWINPUT, uicommand: RAW_INPUT_DATA_COMMAND_FLAGS, pdata: *mut ::core::ffi::c_void, pcbsize: *mut u32, cbsizeheader: u32) -> u32; #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn GetRawInputDeviceInfoA(hdevice: super::super::Foundation::HANDLE, uicommand: RAW_INPUT_DEVICE_INFO_COMMAND, pdata: *mut ::core::ffi::c_void, pcbsize: *mut u32) -> u32; #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn GetRawInputDeviceInfoW(hdevice: super::super::Foundation::HANDLE, uicommand: RAW_INPUT_DEVICE_INFO_COMMAND, pdata: *mut ::core::ffi::c_void, pcbsize: *mut u32) -> u32; #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn GetRawInputDeviceList(prawinputdevicelist: *mut RAWINPUTDEVICELIST, puinumdevices: *mut u32, cbsize: u32) -> u32; #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn GetRegisteredRawInputDevices(prawinputdevices: *mut RAWINPUTDEVICE, puinumdevices: *mut u32, cbsize: u32) -> u32; #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn RegisterRawInputDevices(prawinputdevices: *const RAWINPUTDEVICE, uinumdevices: u32, cbsize: u32) -> super::super::Foundation::BOOL; } pub type HRAWINPUT = isize; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub type INPUT_MESSAGE_DEVICE_TYPE = i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMDT_UNAVAILABLE: INPUT_MESSAGE_DEVICE_TYPE = 0i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMDT_KEYBOARD: INPUT_MESSAGE_DEVICE_TYPE = 1i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMDT_MOUSE: INPUT_MESSAGE_DEVICE_TYPE = 2i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMDT_TOUCH: INPUT_MESSAGE_DEVICE_TYPE = 4i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMDT_PEN: INPUT_MESSAGE_DEVICE_TYPE = 8i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMDT_TOUCHPAD: INPUT_MESSAGE_DEVICE_TYPE = 16i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub type INPUT_MESSAGE_ORIGIN_ID = i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMO_UNAVAILABLE: INPUT_MESSAGE_ORIGIN_ID = 0i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMO_HARDWARE: INPUT_MESSAGE_ORIGIN_ID = 1i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMO_INJECTED: INPUT_MESSAGE_ORIGIN_ID = 2i32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const IMO_SYSTEM: INPUT_MESSAGE_ORIGIN_ID = 4i32; #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub struct INPUT_MESSAGE_SOURCE { pub deviceType: INPUT_MESSAGE_DEVICE_TYPE, pub originId: INPUT_MESSAGE_ORIGIN_ID, } impl ::core::marker::Copy for INPUT_MESSAGE_SOURCE {} impl ::core::clone::Clone for INPUT_MESSAGE_SOURCE { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub struct RAWHID { pub dwSizeHid: u32, pub dwCount: u32, pub bRawData: [u8; 1], } impl ::core::marker::Copy for RAWHID {} impl ::core::clone::Clone for RAWHID { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub struct RAWINPUT { pub header: RAWINPUTHEADER, pub data: RAWINPUT_0, } #[cfg(feature = "Win32_Foundation")] impl ::core::marker::Copy for RAWINPUT {} #[cfg(feature = "Win32_Foundation")] impl ::core::clone::Clone for RAWINPUT { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub union RAWINPUT_0 { pub mouse: RAWMOUSE, pub keyboard: RAWKEYBOARD, pub hid: RAWHID, } #[cfg(feature = "Win32_Foundation")] impl ::core::marker::Copy for RAWINPUT_0 {} #[cfg(feature = "Win32_Foundation")] impl ::core::clone::Clone for RAWINPUT_0 { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub struct RAWINPUTDEVICE { pub usUsagePage: u16, pub usUsage: u16, pub dwFlags: RAWINPUTDEVICE_FLAGS, pub hwndTarget: super::super::Foundation::HWND, } #[cfg(feature = "Win32_Foundation")] impl ::core::marker::Copy for RAWINPUTDEVICE {} #[cfg(feature = "Win32_Foundation")] impl ::core::clone::Clone for RAWINPUTDEVICE { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub struct RAWINPUTDEVICELIST { pub hDevice: super::super::Foundation::HANDLE, pub dwType: RID_DEVICE_INFO_TYPE, } #[cfg(feature = "Win32_Foundation")] impl ::core::marker::Copy for RAWINPUTDEVICELIST {} #[cfg(feature = "Win32_Foundation")] impl ::core::clone::Clone for RAWINPUTDEVICELIST { fn clone(&self) -> Self { *self } } #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub type RAWINPUTDEVICE_FLAGS = u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_REMOVE: RAWINPUTDEVICE_FLAGS = 1u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_EXCLUDE: RAWINPUTDEVICE_FLAGS = 16u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_PAGEONLY: RAWINPUTDEVICE_FLAGS = 32u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_NOLEGACY: RAWINPUTDEVICE_FLAGS = 48u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_INPUTSINK: RAWINPUTDEVICE_FLAGS = 256u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_CAPTUREMOUSE: RAWINPUTDEVICE_FLAGS = 512u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_NOHOTKEYS: RAWINPUTDEVICE_FLAGS = 512u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_APPKEYS: RAWINPUTDEVICE_FLAGS = 1024u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_EXINPUTSINK: RAWINPUTDEVICE_FLAGS = 4096u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDEV_DEVNOTIFY: RAWINPUTDEVICE_FLAGS = 8192u32; #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub struct RAWINPUTHEADER { pub dwType: u32, pub dwSize: u32, pub hDevice: super::super::Foundation::HANDLE, pub wParam: super::super::Foundation::WPARAM, } #[cfg(feature = "Win32_Foundation")] impl ::core::marker::Copy for RAWINPUTHEADER {} #[cfg(feature = "Win32_Foundation")] impl ::core::clone::Clone for RAWINPUTHEADER { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub struct RAWKEYBOARD { pub MakeCode: u16, pub Flags: u16, pub Reserved: u16, pub VKey: u16, pub Message: u32, pub ExtraInformation: u32, } impl ::core::marker::Copy for RAWKEYBOARD {} impl ::core::clone::Clone for RAWKEYBOARD { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub struct RAWMOUSE { pub usFlags: u16, pub Anonymous: RAWMOUSE_0, pub ulRawButtons: u32, pub lLastX: i32, pub lLastY: i32, pub ulExtraInformation: u32, } impl ::core::marker::Copy for RAWMOUSE {} impl ::core::clone::Clone for RAWMOUSE { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub union RAWMOUSE_0 { pub ulButtons: u32, pub Anonymous: RAWMOUSE_0_0, } impl ::core::marker::Copy for RAWMOUSE_0 {} impl ::core::clone::Clone for RAWMOUSE_0 { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub struct RAWMOUSE_0_0 { pub usButtonFlags: u16, pub usButtonData: u16, } impl ::core::marker::Copy for RAWMOUSE_0_0 {} impl ::core::clone::Clone for RAWMOUSE_0_0 { fn clone(&self) -> Self { *self } } #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub type RAW_INPUT_DATA_COMMAND_FLAGS = u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RID_HEADER: RAW_INPUT_DATA_COMMAND_FLAGS = 268435461u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RID_INPUT: RAW_INPUT_DATA_COMMAND_FLAGS = 268435459u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub type RAW_INPUT_DEVICE_INFO_COMMAND = u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDI_PREPARSEDDATA: RAW_INPUT_DEVICE_INFO_COMMAND = 536870917u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDI_DEVICENAME: RAW_INPUT_DEVICE_INFO_COMMAND = 536870919u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIDI_DEVICEINFO: RAW_INPUT_DEVICE_INFO_COMMAND = 536870923u32; #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub struct RID_DEVICE_INFO { pub cbSize: u32, pub dwType: RID_DEVICE_INFO_TYPE, pub Anonymous: RID_DEVICE_INFO_0, } #[cfg(feature = "Win32_Foundation")] impl ::core::marker::Copy for RID_DEVICE_INFO {} #[cfg(feature = "Win32_Foundation")] impl ::core::clone::Clone for RID_DEVICE_INFO { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub union RID_DEVICE_INFO_0 { pub mouse: RID_DEVICE_INFO_MOUSE, pub keyboard: RID_DEVICE_INFO_KEYBOARD, pub hid: RID_DEVICE_INFO_HID, } #[cfg(feature = "Win32_Foundation")] impl ::core::marker::Copy for RID_DEVICE_INFO_0 {} #[cfg(feature = "Win32_Foundation")] impl ::core::clone::Clone for RID_DEVICE_INFO_0 { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub struct RID_DEVICE_INFO_HID { pub dwVendorId: u32, pub dwProductId: u32, pub dwVersionNumber: u32, pub usUsagePage: u16, pub usUsage: u16, } impl ::core::marker::Copy for RID_DEVICE_INFO_HID {} impl ::core::clone::Clone for RID_DEVICE_INFO_HID { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub struct RID_DEVICE_INFO_KEYBOARD { pub dwType: u32, pub dwSubType: u32, pub dwKeyboardMode: u32, pub dwNumberOfFunctionKeys: u32, pub dwNumberOfIndicators: u32, pub dwNumberOfKeysTotal: u32, } impl ::core::marker::Copy for RID_DEVICE_INFO_KEYBOARD {} impl ::core::clone::Clone for RID_DEVICE_INFO_KEYBOARD { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub struct RID_DEVICE_INFO_MOUSE { pub dwId: u32, pub dwNumberOfButtons: u32, pub dwSampleRate: u32, pub fHasHorizontalWheel: super::super::Foundation::BOOL, } #[cfg(feature = "Win32_Foundation")] impl ::core::marker::Copy for RID_DEVICE_INFO_MOUSE {} #[cfg(feature = "Win32_Foundation")] impl ::core::clone::Clone for RID_DEVICE_INFO_MOUSE { fn clone(&self) -> Self { *self } } #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub type RID_DEVICE_INFO_TYPE = u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIM_TYPEMOUSE: RID_DEVICE_INFO_TYPE = 0u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIM_TYPEKEYBOARD: RID_DEVICE_INFO_TYPE = 1u32; #[doc = "*Required features: `\"Win32_UI_Input\"`*"] pub const RIM_TYPEHID: RID_DEVICE_INFO_TYPE = 2u32;