1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[repr(transparent)]
3 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4 pub struct HidBooleanControl(::windows::runtime::IInspectable);
5 impl HidBooleanControl {
Id(&self) -> ::windows::runtime::Result<u32>6     pub fn Id(&self) -> ::windows::runtime::Result<u32> {
7         let this = self;
8         unsafe {
9             let mut result__: u32 = ::std::mem::zeroed();
10             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
11         }
12     }
UsagePage(&self) -> ::windows::runtime::Result<u16>13     pub fn UsagePage(&self) -> ::windows::runtime::Result<u16> {
14         let this = self;
15         unsafe {
16             let mut result__: u16 = ::std::mem::zeroed();
17             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
18         }
19     }
UsageId(&self) -> ::windows::runtime::Result<u16>20     pub fn UsageId(&self) -> ::windows::runtime::Result<u16> {
21         let this = self;
22         unsafe {
23             let mut result__: u16 = ::std::mem::zeroed();
24             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
25         }
26     }
IsActive(&self) -> ::windows::runtime::Result<bool>27     pub fn IsActive(&self) -> ::windows::runtime::Result<bool> {
28         let this = self;
29         unsafe {
30             let mut result__: bool = ::std::mem::zeroed();
31             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
32         }
33     }
SetIsActive(&self, value: bool) -> ::windows::runtime::Result<()>34     pub fn SetIsActive(&self, value: bool) -> ::windows::runtime::Result<()> {
35         let this = self;
36         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() }
37     }
ControlDescription(&self) -> ::windows::runtime::Result<HidBooleanControlDescription>38     pub fn ControlDescription(&self) -> ::windows::runtime::Result<HidBooleanControlDescription> {
39         let this = self;
40         unsafe {
41             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
42             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HidBooleanControlDescription>(result__)
43         }
44     }
45 }
46 unsafe impl ::windows::runtime::RuntimeType for HidBooleanControl {
47     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidBooleanControl;{524df48a-3695-408c-bba2-e2eb5abfbc20})");
48 }
49 unsafe impl ::windows::runtime::Interface for HidBooleanControl {
50     type Vtable = IHidBooleanControl_abi;
51     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1380840586, 13973, 16524, [187, 162, 226, 235, 90, 191, 188, 32]);
52 }
53 impl ::windows::runtime::RuntimeName for HidBooleanControl {
54     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidBooleanControl";
55 }
56 impl ::std::convert::From<HidBooleanControl> for ::windows::runtime::IUnknown {
from(value: HidBooleanControl) -> Self57     fn from(value: HidBooleanControl) -> Self {
58         unsafe { ::std::mem::transmute(value) }
59     }
60 }
61 impl ::std::convert::From<&HidBooleanControl> for ::windows::runtime::IUnknown {
from(value: &HidBooleanControl) -> Self62     fn from(value: &HidBooleanControl) -> Self {
63         ::std::convert::From::from(::std::clone::Clone::clone(value))
64     }
65 }
66 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidBooleanControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>67     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
68         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
69     }
70 }
71 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidBooleanControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>72     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
73         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
74     }
75 }
76 impl ::std::convert::From<HidBooleanControl> for ::windows::runtime::IInspectable {
from(value: HidBooleanControl) -> Self77     fn from(value: HidBooleanControl) -> Self {
78         value.0
79     }
80 }
81 impl ::std::convert::From<&HidBooleanControl> for ::windows::runtime::IInspectable {
from(value: &HidBooleanControl) -> Self82     fn from(value: &HidBooleanControl) -> Self {
83         value.0.clone()
84     }
85 }
86 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidBooleanControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>87     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
88         ::windows::runtime::Param::Owned(self.0)
89     }
90 }
91 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidBooleanControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>92     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
93         ::windows::runtime::Param::Borrowed(&self.0)
94     }
95 }
96 unsafe impl ::std::marker::Send for HidBooleanControl {}
97 unsafe impl ::std::marker::Sync for HidBooleanControl {}
98 #[repr(transparent)]
99 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
100 pub struct HidBooleanControlDescription(::windows::runtime::IInspectable);
101 impl HidBooleanControlDescription {
Id(&self) -> ::windows::runtime::Result<u32>102     pub fn Id(&self) -> ::windows::runtime::Result<u32> {
103         let this = self;
104         unsafe {
105             let mut result__: u32 = ::std::mem::zeroed();
106             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
107         }
108     }
ReportId(&self) -> ::windows::runtime::Result<u16>109     pub fn ReportId(&self) -> ::windows::runtime::Result<u16> {
110         let this = self;
111         unsafe {
112             let mut result__: u16 = ::std::mem::zeroed();
113             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
114         }
115     }
ReportType(&self) -> ::windows::runtime::Result<HidReportType>116     pub fn ReportType(&self) -> ::windows::runtime::Result<HidReportType> {
117         let this = self;
118         unsafe {
119             let mut result__: HidReportType = ::std::mem::zeroed();
120             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HidReportType>(result__)
121         }
122     }
UsagePage(&self) -> ::windows::runtime::Result<u16>123     pub fn UsagePage(&self) -> ::windows::runtime::Result<u16> {
124         let this = self;
125         unsafe {
126             let mut result__: u16 = ::std::mem::zeroed();
127             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
128         }
129     }
UsageId(&self) -> ::windows::runtime::Result<u16>130     pub fn UsageId(&self) -> ::windows::runtime::Result<u16> {
131         let this = self;
132         unsafe {
133             let mut result__: u16 = ::std::mem::zeroed();
134             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
135         }
136     }
137     #[cfg(feature = "Foundation_Collections")]
ParentCollections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidCollection>>138     pub fn ParentCollections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidCollection>> {
139         let this = self;
140         unsafe {
141             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
142             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<HidCollection>>(result__)
143         }
144     }
IsAbsolute(&self) -> ::windows::runtime::Result<bool>145     pub fn IsAbsolute(&self) -> ::windows::runtime::Result<bool> {
146         let this = &::windows::runtime::Interface::cast::<IHidBooleanControlDescription2>(self)?;
147         unsafe {
148             let mut result__: bool = ::std::mem::zeroed();
149             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
150         }
151     }
152 }
153 unsafe impl ::windows::runtime::RuntimeType for HidBooleanControlDescription {
154     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription;{6196e543-29d8-4a2a-8683-849e207bbe31})");
155 }
156 unsafe impl ::windows::runtime::Interface for HidBooleanControlDescription {
157     type Vtable = IHidBooleanControlDescription_abi;
158     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1637279043, 10712, 18986, [134, 131, 132, 158, 32, 123, 190, 49]);
159 }
160 impl ::windows::runtime::RuntimeName for HidBooleanControlDescription {
161     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription";
162 }
163 impl ::std::convert::From<HidBooleanControlDescription> for ::windows::runtime::IUnknown {
from(value: HidBooleanControlDescription) -> Self164     fn from(value: HidBooleanControlDescription) -> Self {
165         unsafe { ::std::mem::transmute(value) }
166     }
167 }
168 impl ::std::convert::From<&HidBooleanControlDescription> for ::windows::runtime::IUnknown {
from(value: &HidBooleanControlDescription) -> Self169     fn from(value: &HidBooleanControlDescription) -> Self {
170         ::std::convert::From::from(::std::clone::Clone::clone(value))
171     }
172 }
173 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidBooleanControlDescription {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>174     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
175         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
176     }
177 }
178 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidBooleanControlDescription {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>179     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
180         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
181     }
182 }
183 impl ::std::convert::From<HidBooleanControlDescription> for ::windows::runtime::IInspectable {
from(value: HidBooleanControlDescription) -> Self184     fn from(value: HidBooleanControlDescription) -> Self {
185         value.0
186     }
187 }
188 impl ::std::convert::From<&HidBooleanControlDescription> for ::windows::runtime::IInspectable {
from(value: &HidBooleanControlDescription) -> Self189     fn from(value: &HidBooleanControlDescription) -> Self {
190         value.0.clone()
191     }
192 }
193 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidBooleanControlDescription {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>194     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
195         ::windows::runtime::Param::Owned(self.0)
196     }
197 }
198 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidBooleanControlDescription {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>199     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
200         ::windows::runtime::Param::Borrowed(&self.0)
201     }
202 }
203 unsafe impl ::std::marker::Send for HidBooleanControlDescription {}
204 unsafe impl ::std::marker::Sync for HidBooleanControlDescription {}
205 #[repr(transparent)]
206 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
207 pub struct HidCollection(::windows::runtime::IInspectable);
208 impl HidCollection {
Id(&self) -> ::windows::runtime::Result<u32>209     pub fn Id(&self) -> ::windows::runtime::Result<u32> {
210         let this = self;
211         unsafe {
212             let mut result__: u32 = ::std::mem::zeroed();
213             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
214         }
215     }
Type(&self) -> ::windows::runtime::Result<HidCollectionType>216     pub fn Type(&self) -> ::windows::runtime::Result<HidCollectionType> {
217         let this = self;
218         unsafe {
219             let mut result__: HidCollectionType = ::std::mem::zeroed();
220             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HidCollectionType>(result__)
221         }
222     }
UsagePage(&self) -> ::windows::runtime::Result<u32>223     pub fn UsagePage(&self) -> ::windows::runtime::Result<u32> {
224         let this = self;
225         unsafe {
226             let mut result__: u32 = ::std::mem::zeroed();
227             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
228         }
229     }
UsageId(&self) -> ::windows::runtime::Result<u32>230     pub fn UsageId(&self) -> ::windows::runtime::Result<u32> {
231         let this = self;
232         unsafe {
233             let mut result__: u32 = ::std::mem::zeroed();
234             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
235         }
236     }
237 }
238 unsafe impl ::windows::runtime::RuntimeType for HidCollection {
239     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidCollection;{7189f5a3-32f1-46e3-befd-44d2663b7e6a})");
240 }
241 unsafe impl ::windows::runtime::Interface for HidCollection {
242     type Vtable = IHidCollection_abi;
243     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1904866723, 13041, 18147, [190, 253, 68, 210, 102, 59, 126, 106]);
244 }
245 impl ::windows::runtime::RuntimeName for HidCollection {
246     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidCollection";
247 }
248 impl ::std::convert::From<HidCollection> for ::windows::runtime::IUnknown {
from(value: HidCollection) -> Self249     fn from(value: HidCollection) -> Self {
250         unsafe { ::std::mem::transmute(value) }
251     }
252 }
253 impl ::std::convert::From<&HidCollection> for ::windows::runtime::IUnknown {
from(value: &HidCollection) -> Self254     fn from(value: &HidCollection) -> Self {
255         ::std::convert::From::from(::std::clone::Clone::clone(value))
256     }
257 }
258 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidCollection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>259     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
260         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
261     }
262 }
263 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidCollection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>264     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
265         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
266     }
267 }
268 impl ::std::convert::From<HidCollection> for ::windows::runtime::IInspectable {
from(value: HidCollection) -> Self269     fn from(value: HidCollection) -> Self {
270         value.0
271     }
272 }
273 impl ::std::convert::From<&HidCollection> for ::windows::runtime::IInspectable {
from(value: &HidCollection) -> Self274     fn from(value: &HidCollection) -> Self {
275         value.0.clone()
276     }
277 }
278 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidCollection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>279     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
280         ::windows::runtime::Param::Owned(self.0)
281     }
282 }
283 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidCollection {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>284     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
285         ::windows::runtime::Param::Borrowed(&self.0)
286     }
287 }
288 unsafe impl ::std::marker::Send for HidCollection {}
289 unsafe impl ::std::marker::Sync for HidCollection {}
290 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
291 #[repr(transparent)]
292 pub struct HidCollectionType(pub i32);
293 impl HidCollectionType {
294     pub const Physical: HidCollectionType = HidCollectionType(0i32);
295     pub const Application: HidCollectionType = HidCollectionType(1i32);
296     pub const Logical: HidCollectionType = HidCollectionType(2i32);
297     pub const Report: HidCollectionType = HidCollectionType(3i32);
298     pub const NamedArray: HidCollectionType = HidCollectionType(4i32);
299     pub const UsageSwitch: HidCollectionType = HidCollectionType(5i32);
300     pub const UsageModifier: HidCollectionType = HidCollectionType(6i32);
301     pub const Other: HidCollectionType = HidCollectionType(7i32);
302 }
303 impl ::std::convert::From<i32> for HidCollectionType {
from(value: i32) -> Self304     fn from(value: i32) -> Self {
305         Self(value)
306     }
307 }
308 unsafe impl ::windows::runtime::Abi for HidCollectionType {
309     type Abi = Self;
310     type DefaultType = Self;
311 }
312 unsafe impl ::windows::runtime::RuntimeType for HidCollectionType {
313     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.HumanInterfaceDevice.HidCollectionType;i4)");
314 }
315 #[repr(transparent)]
316 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
317 pub struct HidDevice(::windows::runtime::IInspectable);
318 impl HidDevice {
VendorId(&self) -> ::windows::runtime::Result<u16>319     pub fn VendorId(&self) -> ::windows::runtime::Result<u16> {
320         let this = self;
321         unsafe {
322             let mut result__: u16 = ::std::mem::zeroed();
323             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
324         }
325     }
ProductId(&self) -> ::windows::runtime::Result<u16>326     pub fn ProductId(&self) -> ::windows::runtime::Result<u16> {
327         let this = self;
328         unsafe {
329             let mut result__: u16 = ::std::mem::zeroed();
330             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
331         }
332     }
Version(&self) -> ::windows::runtime::Result<u16>333     pub fn Version(&self) -> ::windows::runtime::Result<u16> {
334         let this = self;
335         unsafe {
336             let mut result__: u16 = ::std::mem::zeroed();
337             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
338         }
339     }
UsagePage(&self) -> ::windows::runtime::Result<u16>340     pub fn UsagePage(&self) -> ::windows::runtime::Result<u16> {
341         let this = self;
342         unsafe {
343             let mut result__: u16 = ::std::mem::zeroed();
344             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
345         }
346     }
UsageId(&self) -> ::windows::runtime::Result<u16>347     pub fn UsageId(&self) -> ::windows::runtime::Result<u16> {
348         let this = self;
349         unsafe {
350             let mut result__: u16 = ::std::mem::zeroed();
351             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
352         }
353     }
354     #[cfg(feature = "Foundation")]
GetInputReportAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidInputReport>>355     pub fn GetInputReportAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidInputReport>> {
356         let this = self;
357         unsafe {
358             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
359             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<HidInputReport>>(result__)
360         }
361     }
362     #[cfg(feature = "Foundation")]
GetInputReportByIdAsync(&self, reportid: u16) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidInputReport>>363     pub fn GetInputReportByIdAsync(&self, reportid: u16) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidInputReport>> {
364         let this = self;
365         unsafe {
366             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
367             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), reportid, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<HidInputReport>>(result__)
368         }
369     }
370     #[cfg(feature = "Foundation")]
GetFeatureReportAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidFeatureReport>>371     pub fn GetFeatureReportAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidFeatureReport>> {
372         let this = self;
373         unsafe {
374             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
375             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<HidFeatureReport>>(result__)
376         }
377     }
378     #[cfg(feature = "Foundation")]
GetFeatureReportByIdAsync(&self, reportid: u16) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidFeatureReport>>379     pub fn GetFeatureReportByIdAsync(&self, reportid: u16) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidFeatureReport>> {
380         let this = self;
381         unsafe {
382             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
383             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), reportid, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<HidFeatureReport>>(result__)
384         }
385     }
CreateOutputReport(&self) -> ::windows::runtime::Result<HidOutputReport>386     pub fn CreateOutputReport(&self) -> ::windows::runtime::Result<HidOutputReport> {
387         let this = self;
388         unsafe {
389             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
390             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HidOutputReport>(result__)
391         }
392     }
CreateOutputReportById(&self, reportid: u16) -> ::windows::runtime::Result<HidOutputReport>393     pub fn CreateOutputReportById(&self, reportid: u16) -> ::windows::runtime::Result<HidOutputReport> {
394         let this = self;
395         unsafe {
396             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
397             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), reportid, &mut result__).from_abi::<HidOutputReport>(result__)
398         }
399     }
CreateFeatureReport(&self) -> ::windows::runtime::Result<HidFeatureReport>400     pub fn CreateFeatureReport(&self) -> ::windows::runtime::Result<HidFeatureReport> {
401         let this = self;
402         unsafe {
403             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
404             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HidFeatureReport>(result__)
405         }
406     }
CreateFeatureReportById(&self, reportid: u16) -> ::windows::runtime::Result<HidFeatureReport>407     pub fn CreateFeatureReportById(&self, reportid: u16) -> ::windows::runtime::Result<HidFeatureReport> {
408         let this = self;
409         unsafe {
410             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
411             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), reportid, &mut result__).from_abi::<HidFeatureReport>(result__)
412         }
413     }
414     #[cfg(feature = "Foundation")]
SendOutputReportAsync<'a, Param0: ::windows::runtime::IntoParam<'a, HidOutputReport>>(&self, outputreport: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<u32>>415     pub fn SendOutputReportAsync<'a, Param0: ::windows::runtime::IntoParam<'a, HidOutputReport>>(&self, outputreport: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<u32>> {
416         let this = self;
417         unsafe {
418             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
419             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), outputreport.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<u32>>(result__)
420         }
421     }
422     #[cfg(feature = "Foundation")]
SendFeatureReportAsync<'a, Param0: ::windows::runtime::IntoParam<'a, HidFeatureReport>>(&self, featurereport: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<u32>>423     pub fn SendFeatureReportAsync<'a, Param0: ::windows::runtime::IntoParam<'a, HidFeatureReport>>(&self, featurereport: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<u32>> {
424         let this = self;
425         unsafe {
426             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
427             (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), featurereport.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<u32>>(result__)
428         }
429     }
430     #[cfg(feature = "Foundation_Collections")]
GetBooleanControlDescriptions(&self, reporttype: HidReportType, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidBooleanControlDescription>>431     pub fn GetBooleanControlDescriptions(&self, reporttype: HidReportType, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidBooleanControlDescription>> {
432         let this = self;
433         unsafe {
434             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
435             (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), reporttype, usagepage, usageid, &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<HidBooleanControlDescription>>(result__)
436         }
437     }
438     #[cfg(feature = "Foundation_Collections")]
GetNumericControlDescriptions(&self, reporttype: HidReportType, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidNumericControlDescription>>439     pub fn GetNumericControlDescriptions(&self, reporttype: HidReportType, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidNumericControlDescription>> {
440         let this = self;
441         unsafe {
442             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
443             (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), reporttype, usagepage, usageid, &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<HidNumericControlDescription>>(result__)
444         }
445     }
446     #[cfg(feature = "Foundation")]
InputReportReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<HidDevice, HidInputReportReceivedEventArgs>>>(&self, reporthandler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>447     pub fn InputReportReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<HidDevice, HidInputReportReceivedEventArgs>>>(&self, reporthandler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
448         let this = self;
449         unsafe {
450             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
451             (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), reporthandler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
452         }
453     }
454     #[cfg(feature = "Foundation")]
RemoveInputReportReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>455     pub fn RemoveInputReportReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
456         let this = self;
457         unsafe { (::windows::runtime::Interface::vtable(this).24)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
458     }
459     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>460     pub fn Close(&self) -> ::windows::runtime::Result<()> {
461         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
462         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
463     }
GetDeviceSelector(usagepage: u16, usageid: u16) -> ::windows::runtime::Result<::windows::runtime::HSTRING>464     pub fn GetDeviceSelector(usagepage: u16, usageid: u16) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
465         Self::IHidDeviceStatics(|this| unsafe {
466             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
467             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), usagepage, usageid, &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
468         })
469     }
GetDeviceSelectorVidPid(usagepage: u16, usageid: u16, vendorid: u16, productid: u16) -> ::windows::runtime::Result<::windows::runtime::HSTRING>470     pub fn GetDeviceSelectorVidPid(usagepage: u16, usageid: u16, vendorid: u16, productid: u16) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
471         Self::IHidDeviceStatics(|this| unsafe {
472             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
473             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), usagepage, usageid, vendorid, productid, &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
474         })
475     }
476     #[cfg(all(feature = "Foundation", feature = "Storage"))]
FromIdAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0, accessmode: super::super::Storage::FileAccessMode) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidDevice>>477     pub fn FromIdAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0, accessmode: super::super::Storage::FileAccessMode) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<HidDevice>> {
478         Self::IHidDeviceStatics(|this| unsafe {
479             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
480             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), deviceid.into_param().abi(), accessmode, &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<HidDevice>>(result__)
481         })
482     }
IHidDeviceStatics<R, F: FnOnce(&IHidDeviceStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>483     pub fn IHidDeviceStatics<R, F: FnOnce(&IHidDeviceStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
484         static mut SHARED: ::windows::runtime::FactoryCache<HidDevice, IHidDeviceStatics> = ::windows::runtime::FactoryCache::new();
485         unsafe { SHARED.call(callback) }
486     }
487 }
488 unsafe impl ::windows::runtime::RuntimeType for HidDevice {
489     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidDevice;{5f8a14e7-2200-432e-95da-d09b87d574a8})");
490 }
491 unsafe impl ::windows::runtime::Interface for HidDevice {
492     type Vtable = IHidDevice_abi;
493     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1602884839, 8704, 17198, [149, 218, 208, 155, 135, 213, 116, 168]);
494 }
495 impl ::windows::runtime::RuntimeName for HidDevice {
496     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidDevice";
497 }
498 impl ::std::convert::From<HidDevice> for ::windows::runtime::IUnknown {
from(value: HidDevice) -> Self499     fn from(value: HidDevice) -> Self {
500         unsafe { ::std::mem::transmute(value) }
501     }
502 }
503 impl ::std::convert::From<&HidDevice> for ::windows::runtime::IUnknown {
from(value: &HidDevice) -> Self504     fn from(value: &HidDevice) -> Self {
505         ::std::convert::From::from(::std::clone::Clone::clone(value))
506     }
507 }
508 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>509     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
510         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
511     }
512 }
513 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>514     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
515         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
516     }
517 }
518 impl ::std::convert::From<HidDevice> for ::windows::runtime::IInspectable {
from(value: HidDevice) -> Self519     fn from(value: HidDevice) -> Self {
520         value.0
521     }
522 }
523 impl ::std::convert::From<&HidDevice> for ::windows::runtime::IInspectable {
from(value: &HidDevice) -> Self524     fn from(value: &HidDevice) -> Self {
525         value.0.clone()
526     }
527 }
528 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>529     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
530         ::windows::runtime::Param::Owned(self.0)
531     }
532 }
533 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>534     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
535         ::windows::runtime::Param::Borrowed(&self.0)
536     }
537 }
538 #[cfg(feature = "Foundation")]
539 impl ::std::convert::TryFrom<HidDevice> for super::super::Foundation::IClosable {
540     type Error = ::windows::runtime::Error;
try_from(value: HidDevice) -> ::windows::runtime::Result<Self>541     fn try_from(value: HidDevice) -> ::windows::runtime::Result<Self> {
542         ::std::convert::TryFrom::try_from(&value)
543     }
544 }
545 #[cfg(feature = "Foundation")]
546 impl ::std::convert::TryFrom<&HidDevice> for super::super::Foundation::IClosable {
547     type Error = ::windows::runtime::Error;
try_from(value: &HidDevice) -> ::windows::runtime::Result<Self>548     fn try_from(value: &HidDevice) -> ::windows::runtime::Result<Self> {
549         ::windows::runtime::Interface::cast(value)
550     }
551 }
552 #[cfg(feature = "Foundation")]
553 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for HidDevice {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>554     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
555         ::windows::runtime::IntoParam::into_param(&self)
556     }
557 }
558 #[cfg(feature = "Foundation")]
559 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &HidDevice {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>560     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
561         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
562     }
563 }
564 unsafe impl ::std::marker::Send for HidDevice {}
565 unsafe impl ::std::marker::Sync for HidDevice {}
566 #[repr(transparent)]
567 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
568 pub struct HidFeatureReport(::windows::runtime::IInspectable);
569 impl HidFeatureReport {
Id(&self) -> ::windows::runtime::Result<u16>570     pub fn Id(&self) -> ::windows::runtime::Result<u16> {
571         let this = self;
572         unsafe {
573             let mut result__: u16 = ::std::mem::zeroed();
574             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
575         }
576     }
577     #[cfg(feature = "Storage_Streams")]
Data(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer>578     pub fn Data(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer> {
579         let this = self;
580         unsafe {
581             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
582             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IBuffer>(result__)
583         }
584     }
585     #[cfg(feature = "Storage_Streams")]
SetData<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, value: Param0) -> ::windows::runtime::Result<()>586     pub fn SetData<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
587         let this = self;
588         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
589     }
GetBooleanControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidBooleanControl>590     pub fn GetBooleanControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidBooleanControl> {
591         let this = self;
592         unsafe {
593             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
594             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), usagepage, usageid, &mut result__).from_abi::<HidBooleanControl>(result__)
595         }
596     }
GetBooleanControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidBooleanControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidBooleanControl>597     pub fn GetBooleanControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidBooleanControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidBooleanControl> {
598         let this = self;
599         unsafe {
600             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
601             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), controldescription.into_param().abi(), &mut result__).from_abi::<HidBooleanControl>(result__)
602         }
603     }
GetNumericControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidNumericControl>604     pub fn GetNumericControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidNumericControl> {
605         let this = self;
606         unsafe {
607             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
608             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), usagepage, usageid, &mut result__).from_abi::<HidNumericControl>(result__)
609         }
610     }
GetNumericControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidNumericControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidNumericControl>611     pub fn GetNumericControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidNumericControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidNumericControl> {
612         let this = self;
613         unsafe {
614             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
615             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), controldescription.into_param().abi(), &mut result__).from_abi::<HidNumericControl>(result__)
616         }
617     }
618 }
619 unsafe impl ::windows::runtime::RuntimeType for HidFeatureReport {
620     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidFeatureReport;{841d9b79-5ae5-46e3-82ef-1fec5c8942f4})");
621 }
622 unsafe impl ::windows::runtime::Interface for HidFeatureReport {
623     type Vtable = IHidFeatureReport_abi;
624     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2216532857, 23269, 18147, [130, 239, 31, 236, 92, 137, 66, 244]);
625 }
626 impl ::windows::runtime::RuntimeName for HidFeatureReport {
627     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidFeatureReport";
628 }
629 impl ::std::convert::From<HidFeatureReport> for ::windows::runtime::IUnknown {
from(value: HidFeatureReport) -> Self630     fn from(value: HidFeatureReport) -> Self {
631         unsafe { ::std::mem::transmute(value) }
632     }
633 }
634 impl ::std::convert::From<&HidFeatureReport> for ::windows::runtime::IUnknown {
from(value: &HidFeatureReport) -> Self635     fn from(value: &HidFeatureReport) -> Self {
636         ::std::convert::From::from(::std::clone::Clone::clone(value))
637     }
638 }
639 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidFeatureReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>640     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
641         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
642     }
643 }
644 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidFeatureReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>645     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
646         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
647     }
648 }
649 impl ::std::convert::From<HidFeatureReport> for ::windows::runtime::IInspectable {
from(value: HidFeatureReport) -> Self650     fn from(value: HidFeatureReport) -> Self {
651         value.0
652     }
653 }
654 impl ::std::convert::From<&HidFeatureReport> for ::windows::runtime::IInspectable {
from(value: &HidFeatureReport) -> Self655     fn from(value: &HidFeatureReport) -> Self {
656         value.0.clone()
657     }
658 }
659 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidFeatureReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>660     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
661         ::windows::runtime::Param::Owned(self.0)
662     }
663 }
664 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidFeatureReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>665     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
666         ::windows::runtime::Param::Borrowed(&self.0)
667     }
668 }
669 unsafe impl ::std::marker::Send for HidFeatureReport {}
670 unsafe impl ::std::marker::Sync for HidFeatureReport {}
671 #[repr(transparent)]
672 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
673 pub struct HidInputReport(::windows::runtime::IInspectable);
674 impl HidInputReport {
Id(&self) -> ::windows::runtime::Result<u16>675     pub fn Id(&self) -> ::windows::runtime::Result<u16> {
676         let this = self;
677         unsafe {
678             let mut result__: u16 = ::std::mem::zeroed();
679             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
680         }
681     }
682     #[cfg(feature = "Storage_Streams")]
Data(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer>683     pub fn Data(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer> {
684         let this = self;
685         unsafe {
686             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
687             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IBuffer>(result__)
688         }
689     }
690     #[cfg(feature = "Foundation_Collections")]
ActivatedBooleanControls(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidBooleanControl>>691     pub fn ActivatedBooleanControls(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidBooleanControl>> {
692         let this = self;
693         unsafe {
694             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
695             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<HidBooleanControl>>(result__)
696         }
697     }
698     #[cfg(feature = "Foundation_Collections")]
TransitionedBooleanControls(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidBooleanControl>>699     pub fn TransitionedBooleanControls(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidBooleanControl>> {
700         let this = self;
701         unsafe {
702             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
703             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<HidBooleanControl>>(result__)
704         }
705     }
GetBooleanControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidBooleanControl>706     pub fn GetBooleanControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidBooleanControl> {
707         let this = self;
708         unsafe {
709             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
710             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), usagepage, usageid, &mut result__).from_abi::<HidBooleanControl>(result__)
711         }
712     }
GetBooleanControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidBooleanControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidBooleanControl>713     pub fn GetBooleanControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidBooleanControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidBooleanControl> {
714         let this = self;
715         unsafe {
716             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
717             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), controldescription.into_param().abi(), &mut result__).from_abi::<HidBooleanControl>(result__)
718         }
719     }
GetNumericControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidNumericControl>720     pub fn GetNumericControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidNumericControl> {
721         let this = self;
722         unsafe {
723             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
724             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), usagepage, usageid, &mut result__).from_abi::<HidNumericControl>(result__)
725         }
726     }
GetNumericControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidNumericControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidNumericControl>727     pub fn GetNumericControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidNumericControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidNumericControl> {
728         let this = self;
729         unsafe {
730             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
731             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), controldescription.into_param().abi(), &mut result__).from_abi::<HidNumericControl>(result__)
732         }
733     }
734 }
735 unsafe impl ::windows::runtime::RuntimeType for HidInputReport {
736     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidInputReport;{c35d0e50-f7e7-4e8d-b23e-cabbe56b90e9})");
737 }
738 unsafe impl ::windows::runtime::Interface for HidInputReport {
739     type Vtable = IHidInputReport_abi;
740     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3277655632, 63463, 20109, [178, 62, 202, 187, 229, 107, 144, 233]);
741 }
742 impl ::windows::runtime::RuntimeName for HidInputReport {
743     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidInputReport";
744 }
745 impl ::std::convert::From<HidInputReport> for ::windows::runtime::IUnknown {
from(value: HidInputReport) -> Self746     fn from(value: HidInputReport) -> Self {
747         unsafe { ::std::mem::transmute(value) }
748     }
749 }
750 impl ::std::convert::From<&HidInputReport> for ::windows::runtime::IUnknown {
from(value: &HidInputReport) -> Self751     fn from(value: &HidInputReport) -> Self {
752         ::std::convert::From::from(::std::clone::Clone::clone(value))
753     }
754 }
755 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidInputReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>756     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
757         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
758     }
759 }
760 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidInputReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>761     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
762         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
763     }
764 }
765 impl ::std::convert::From<HidInputReport> for ::windows::runtime::IInspectable {
from(value: HidInputReport) -> Self766     fn from(value: HidInputReport) -> Self {
767         value.0
768     }
769 }
770 impl ::std::convert::From<&HidInputReport> for ::windows::runtime::IInspectable {
from(value: &HidInputReport) -> Self771     fn from(value: &HidInputReport) -> Self {
772         value.0.clone()
773     }
774 }
775 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidInputReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>776     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
777         ::windows::runtime::Param::Owned(self.0)
778     }
779 }
780 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidInputReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>781     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
782         ::windows::runtime::Param::Borrowed(&self.0)
783     }
784 }
785 unsafe impl ::std::marker::Send for HidInputReport {}
786 unsafe impl ::std::marker::Sync for HidInputReport {}
787 #[repr(transparent)]
788 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
789 pub struct HidInputReportReceivedEventArgs(::windows::runtime::IInspectable);
790 impl HidInputReportReceivedEventArgs {
Report(&self) -> ::windows::runtime::Result<HidInputReport>791     pub fn Report(&self) -> ::windows::runtime::Result<HidInputReport> {
792         let this = self;
793         unsafe {
794             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
795             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HidInputReport>(result__)
796         }
797     }
798 }
799 unsafe impl ::windows::runtime::RuntimeType for HidInputReportReceivedEventArgs {
800     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidInputReportReceivedEventArgs;{7059c5cb-59b2-4dc2-985c-0adc6136fa2d})");
801 }
802 unsafe impl ::windows::runtime::Interface for HidInputReportReceivedEventArgs {
803     type Vtable = IHidInputReportReceivedEventArgs_abi;
804     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1884931531, 22962, 19906, [152, 92, 10, 220, 97, 54, 250, 45]);
805 }
806 impl ::windows::runtime::RuntimeName for HidInputReportReceivedEventArgs {
807     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidInputReportReceivedEventArgs";
808 }
809 impl ::std::convert::From<HidInputReportReceivedEventArgs> for ::windows::runtime::IUnknown {
from(value: HidInputReportReceivedEventArgs) -> Self810     fn from(value: HidInputReportReceivedEventArgs) -> Self {
811         unsafe { ::std::mem::transmute(value) }
812     }
813 }
814 impl ::std::convert::From<&HidInputReportReceivedEventArgs> for ::windows::runtime::IUnknown {
from(value: &HidInputReportReceivedEventArgs) -> Self815     fn from(value: &HidInputReportReceivedEventArgs) -> Self {
816         ::std::convert::From::from(::std::clone::Clone::clone(value))
817     }
818 }
819 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidInputReportReceivedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>820     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
821         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
822     }
823 }
824 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidInputReportReceivedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>825     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
826         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
827     }
828 }
829 impl ::std::convert::From<HidInputReportReceivedEventArgs> for ::windows::runtime::IInspectable {
from(value: HidInputReportReceivedEventArgs) -> Self830     fn from(value: HidInputReportReceivedEventArgs) -> Self {
831         value.0
832     }
833 }
834 impl ::std::convert::From<&HidInputReportReceivedEventArgs> for ::windows::runtime::IInspectable {
from(value: &HidInputReportReceivedEventArgs) -> Self835     fn from(value: &HidInputReportReceivedEventArgs) -> Self {
836         value.0.clone()
837     }
838 }
839 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidInputReportReceivedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>840     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
841         ::windows::runtime::Param::Owned(self.0)
842     }
843 }
844 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidInputReportReceivedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>845     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
846         ::windows::runtime::Param::Borrowed(&self.0)
847     }
848 }
849 unsafe impl ::std::marker::Send for HidInputReportReceivedEventArgs {}
850 unsafe impl ::std::marker::Sync for HidInputReportReceivedEventArgs {}
851 #[repr(transparent)]
852 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
853 pub struct HidNumericControl(::windows::runtime::IInspectable);
854 impl HidNumericControl {
Id(&self) -> ::windows::runtime::Result<u32>855     pub fn Id(&self) -> ::windows::runtime::Result<u32> {
856         let this = self;
857         unsafe {
858             let mut result__: u32 = ::std::mem::zeroed();
859             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
860         }
861     }
IsGrouped(&self) -> ::windows::runtime::Result<bool>862     pub fn IsGrouped(&self) -> ::windows::runtime::Result<bool> {
863         let this = self;
864         unsafe {
865             let mut result__: bool = ::std::mem::zeroed();
866             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
867         }
868     }
UsagePage(&self) -> ::windows::runtime::Result<u16>869     pub fn UsagePage(&self) -> ::windows::runtime::Result<u16> {
870         let this = self;
871         unsafe {
872             let mut result__: u16 = ::std::mem::zeroed();
873             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
874         }
875     }
UsageId(&self) -> ::windows::runtime::Result<u16>876     pub fn UsageId(&self) -> ::windows::runtime::Result<u16> {
877         let this = self;
878         unsafe {
879             let mut result__: u16 = ::std::mem::zeroed();
880             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
881         }
882     }
Value(&self) -> ::windows::runtime::Result<i64>883     pub fn Value(&self) -> ::windows::runtime::Result<i64> {
884         let this = self;
885         unsafe {
886             let mut result__: i64 = ::std::mem::zeroed();
887             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i64>(result__)
888         }
889     }
SetValue(&self, value: i64) -> ::windows::runtime::Result<()>890     pub fn SetValue(&self, value: i64) -> ::windows::runtime::Result<()> {
891         let this = self;
892         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
893     }
ScaledValue(&self) -> ::windows::runtime::Result<i64>894     pub fn ScaledValue(&self) -> ::windows::runtime::Result<i64> {
895         let this = self;
896         unsafe {
897             let mut result__: i64 = ::std::mem::zeroed();
898             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i64>(result__)
899         }
900     }
SetScaledValue(&self, value: i64) -> ::windows::runtime::Result<()>901     pub fn SetScaledValue(&self, value: i64) -> ::windows::runtime::Result<()> {
902         let this = self;
903         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value).ok() }
904     }
ControlDescription(&self) -> ::windows::runtime::Result<HidNumericControlDescription>905     pub fn ControlDescription(&self) -> ::windows::runtime::Result<HidNumericControlDescription> {
906         let this = self;
907         unsafe {
908             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
909             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HidNumericControlDescription>(result__)
910         }
911     }
912 }
913 unsafe impl ::windows::runtime::RuntimeType for HidNumericControl {
914     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidNumericControl;{e38a12a5-35a7-4b75-89c8-fb1f28b10823})");
915 }
916 unsafe impl ::windows::runtime::Interface for HidNumericControl {
917     type Vtable = IHidNumericControl_abi;
918     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3817476773, 13735, 19317, [137, 200, 251, 31, 40, 177, 8, 35]);
919 }
920 impl ::windows::runtime::RuntimeName for HidNumericControl {
921     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidNumericControl";
922 }
923 impl ::std::convert::From<HidNumericControl> for ::windows::runtime::IUnknown {
from(value: HidNumericControl) -> Self924     fn from(value: HidNumericControl) -> Self {
925         unsafe { ::std::mem::transmute(value) }
926     }
927 }
928 impl ::std::convert::From<&HidNumericControl> for ::windows::runtime::IUnknown {
from(value: &HidNumericControl) -> Self929     fn from(value: &HidNumericControl) -> Self {
930         ::std::convert::From::from(::std::clone::Clone::clone(value))
931     }
932 }
933 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidNumericControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>934     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
935         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
936     }
937 }
938 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidNumericControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>939     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
940         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
941     }
942 }
943 impl ::std::convert::From<HidNumericControl> for ::windows::runtime::IInspectable {
from(value: HidNumericControl) -> Self944     fn from(value: HidNumericControl) -> Self {
945         value.0
946     }
947 }
948 impl ::std::convert::From<&HidNumericControl> for ::windows::runtime::IInspectable {
from(value: &HidNumericControl) -> Self949     fn from(value: &HidNumericControl) -> Self {
950         value.0.clone()
951     }
952 }
953 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidNumericControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>954     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
955         ::windows::runtime::Param::Owned(self.0)
956     }
957 }
958 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidNumericControl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>959     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
960         ::windows::runtime::Param::Borrowed(&self.0)
961     }
962 }
963 unsafe impl ::std::marker::Send for HidNumericControl {}
964 unsafe impl ::std::marker::Sync for HidNumericControl {}
965 #[repr(transparent)]
966 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
967 pub struct HidNumericControlDescription(::windows::runtime::IInspectable);
968 impl HidNumericControlDescription {
Id(&self) -> ::windows::runtime::Result<u32>969     pub fn Id(&self) -> ::windows::runtime::Result<u32> {
970         let this = self;
971         unsafe {
972             let mut result__: u32 = ::std::mem::zeroed();
973             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
974         }
975     }
ReportId(&self) -> ::windows::runtime::Result<u16>976     pub fn ReportId(&self) -> ::windows::runtime::Result<u16> {
977         let this = self;
978         unsafe {
979             let mut result__: u16 = ::std::mem::zeroed();
980             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
981         }
982     }
ReportType(&self) -> ::windows::runtime::Result<HidReportType>983     pub fn ReportType(&self) -> ::windows::runtime::Result<HidReportType> {
984         let this = self;
985         unsafe {
986             let mut result__: HidReportType = ::std::mem::zeroed();
987             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<HidReportType>(result__)
988         }
989     }
ReportSize(&self) -> ::windows::runtime::Result<u32>990     pub fn ReportSize(&self) -> ::windows::runtime::Result<u32> {
991         let this = self;
992         unsafe {
993             let mut result__: u32 = ::std::mem::zeroed();
994             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
995         }
996     }
ReportCount(&self) -> ::windows::runtime::Result<u32>997     pub fn ReportCount(&self) -> ::windows::runtime::Result<u32> {
998         let this = self;
999         unsafe {
1000             let mut result__: u32 = ::std::mem::zeroed();
1001             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1002         }
1003     }
UsagePage(&self) -> ::windows::runtime::Result<u16>1004     pub fn UsagePage(&self) -> ::windows::runtime::Result<u16> {
1005         let this = self;
1006         unsafe {
1007             let mut result__: u16 = ::std::mem::zeroed();
1008             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
1009         }
1010     }
UsageId(&self) -> ::windows::runtime::Result<u16>1011     pub fn UsageId(&self) -> ::windows::runtime::Result<u16> {
1012         let this = self;
1013         unsafe {
1014             let mut result__: u16 = ::std::mem::zeroed();
1015             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
1016         }
1017     }
LogicalMinimum(&self) -> ::windows::runtime::Result<i32>1018     pub fn LogicalMinimum(&self) -> ::windows::runtime::Result<i32> {
1019         let this = self;
1020         unsafe {
1021             let mut result__: i32 = ::std::mem::zeroed();
1022             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
1023         }
1024     }
LogicalMaximum(&self) -> ::windows::runtime::Result<i32>1025     pub fn LogicalMaximum(&self) -> ::windows::runtime::Result<i32> {
1026         let this = self;
1027         unsafe {
1028             let mut result__: i32 = ::std::mem::zeroed();
1029             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
1030         }
1031     }
PhysicalMinimum(&self) -> ::windows::runtime::Result<i32>1032     pub fn PhysicalMinimum(&self) -> ::windows::runtime::Result<i32> {
1033         let this = self;
1034         unsafe {
1035             let mut result__: i32 = ::std::mem::zeroed();
1036             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
1037         }
1038     }
PhysicalMaximum(&self) -> ::windows::runtime::Result<i32>1039     pub fn PhysicalMaximum(&self) -> ::windows::runtime::Result<i32> {
1040         let this = self;
1041         unsafe {
1042             let mut result__: i32 = ::std::mem::zeroed();
1043             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
1044         }
1045     }
UnitExponent(&self) -> ::windows::runtime::Result<u32>1046     pub fn UnitExponent(&self) -> ::windows::runtime::Result<u32> {
1047         let this = self;
1048         unsafe {
1049             let mut result__: u32 = ::std::mem::zeroed();
1050             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1051         }
1052     }
Unit(&self) -> ::windows::runtime::Result<u32>1053     pub fn Unit(&self) -> ::windows::runtime::Result<u32> {
1054         let this = self;
1055         unsafe {
1056             let mut result__: u32 = ::std::mem::zeroed();
1057             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1058         }
1059     }
IsAbsolute(&self) -> ::windows::runtime::Result<bool>1060     pub fn IsAbsolute(&self) -> ::windows::runtime::Result<bool> {
1061         let this = self;
1062         unsafe {
1063             let mut result__: bool = ::std::mem::zeroed();
1064             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1065         }
1066     }
HasNull(&self) -> ::windows::runtime::Result<bool>1067     pub fn HasNull(&self) -> ::windows::runtime::Result<bool> {
1068         let this = self;
1069         unsafe {
1070             let mut result__: bool = ::std::mem::zeroed();
1071             (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1072         }
1073     }
1074     #[cfg(feature = "Foundation_Collections")]
ParentCollections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidCollection>>1075     pub fn ParentCollections(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<HidCollection>> {
1076         let this = self;
1077         unsafe {
1078             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1079             (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<HidCollection>>(result__)
1080         }
1081     }
1082 }
1083 unsafe impl ::windows::runtime::RuntimeType for HidNumericControlDescription {
1084     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription;{638d5e86-1d97-4c75-927f-5ff58ba05e32})");
1085 }
1086 unsafe impl ::windows::runtime::Interface for HidNumericControlDescription {
1087     type Vtable = IHidNumericControlDescription_abi;
1088     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1670209158, 7575, 19573, [146, 127, 95, 245, 139, 160, 94, 50]);
1089 }
1090 impl ::windows::runtime::RuntimeName for HidNumericControlDescription {
1091     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription";
1092 }
1093 impl ::std::convert::From<HidNumericControlDescription> for ::windows::runtime::IUnknown {
from(value: HidNumericControlDescription) -> Self1094     fn from(value: HidNumericControlDescription) -> Self {
1095         unsafe { ::std::mem::transmute(value) }
1096     }
1097 }
1098 impl ::std::convert::From<&HidNumericControlDescription> for ::windows::runtime::IUnknown {
from(value: &HidNumericControlDescription) -> Self1099     fn from(value: &HidNumericControlDescription) -> Self {
1100         ::std::convert::From::from(::std::clone::Clone::clone(value))
1101     }
1102 }
1103 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidNumericControlDescription {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1104     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1105         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1106     }
1107 }
1108 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidNumericControlDescription {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1109     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1110         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1111     }
1112 }
1113 impl ::std::convert::From<HidNumericControlDescription> for ::windows::runtime::IInspectable {
from(value: HidNumericControlDescription) -> Self1114     fn from(value: HidNumericControlDescription) -> Self {
1115         value.0
1116     }
1117 }
1118 impl ::std::convert::From<&HidNumericControlDescription> for ::windows::runtime::IInspectable {
from(value: &HidNumericControlDescription) -> Self1119     fn from(value: &HidNumericControlDescription) -> Self {
1120         value.0.clone()
1121     }
1122 }
1123 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidNumericControlDescription {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1124     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1125         ::windows::runtime::Param::Owned(self.0)
1126     }
1127 }
1128 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidNumericControlDescription {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1129     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1130         ::windows::runtime::Param::Borrowed(&self.0)
1131     }
1132 }
1133 unsafe impl ::std::marker::Send for HidNumericControlDescription {}
1134 unsafe impl ::std::marker::Sync for HidNumericControlDescription {}
1135 #[repr(transparent)]
1136 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1137 pub struct HidOutputReport(::windows::runtime::IInspectable);
1138 impl HidOutputReport {
Id(&self) -> ::windows::runtime::Result<u16>1139     pub fn Id(&self) -> ::windows::runtime::Result<u16> {
1140         let this = self;
1141         unsafe {
1142             let mut result__: u16 = ::std::mem::zeroed();
1143             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u16>(result__)
1144         }
1145     }
1146     #[cfg(feature = "Storage_Streams")]
Data(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer>1147     pub fn Data(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer> {
1148         let this = self;
1149         unsafe {
1150             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1151             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IBuffer>(result__)
1152         }
1153     }
1154     #[cfg(feature = "Storage_Streams")]
SetData<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, value: Param0) -> ::windows::runtime::Result<()>1155     pub fn SetData<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1156         let this = self;
1157         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1158     }
GetBooleanControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidBooleanControl>1159     pub fn GetBooleanControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidBooleanControl> {
1160         let this = self;
1161         unsafe {
1162             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1163             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), usagepage, usageid, &mut result__).from_abi::<HidBooleanControl>(result__)
1164         }
1165     }
GetBooleanControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidBooleanControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidBooleanControl>1166     pub fn GetBooleanControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidBooleanControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidBooleanControl> {
1167         let this = self;
1168         unsafe {
1169             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1170             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), controldescription.into_param().abi(), &mut result__).from_abi::<HidBooleanControl>(result__)
1171         }
1172     }
GetNumericControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidNumericControl>1173     pub fn GetNumericControl(&self, usagepage: u16, usageid: u16) -> ::windows::runtime::Result<HidNumericControl> {
1174         let this = self;
1175         unsafe {
1176             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1177             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), usagepage, usageid, &mut result__).from_abi::<HidNumericControl>(result__)
1178         }
1179     }
GetNumericControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidNumericControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidNumericControl>1180     pub fn GetNumericControlByDescription<'a, Param0: ::windows::runtime::IntoParam<'a, HidNumericControlDescription>>(&self, controldescription: Param0) -> ::windows::runtime::Result<HidNumericControl> {
1181         let this = self;
1182         unsafe {
1183             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1184             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), controldescription.into_param().abi(), &mut result__).from_abi::<HidNumericControl>(result__)
1185         }
1186     }
1187 }
1188 unsafe impl ::windows::runtime::RuntimeType for HidOutputReport {
1189     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.HumanInterfaceDevice.HidOutputReport;{62cb2544-c896-4463-93c1-df9db053c450})");
1190 }
1191 unsafe impl ::windows::runtime::Interface for HidOutputReport {
1192     type Vtable = IHidOutputReport_abi;
1193     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1657480516, 51350, 17507, [147, 193, 223, 157, 176, 83, 196, 80]);
1194 }
1195 impl ::windows::runtime::RuntimeName for HidOutputReport {
1196     const NAME: &'static str = "Windows.Devices.HumanInterfaceDevice.HidOutputReport";
1197 }
1198 impl ::std::convert::From<HidOutputReport> for ::windows::runtime::IUnknown {
from(value: HidOutputReport) -> Self1199     fn from(value: HidOutputReport) -> Self {
1200         unsafe { ::std::mem::transmute(value) }
1201     }
1202 }
1203 impl ::std::convert::From<&HidOutputReport> for ::windows::runtime::IUnknown {
from(value: &HidOutputReport) -> Self1204     fn from(value: &HidOutputReport) -> Self {
1205         ::std::convert::From::from(::std::clone::Clone::clone(value))
1206     }
1207 }
1208 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for HidOutputReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1209     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1210         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1211     }
1212 }
1213 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &HidOutputReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1214     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1215         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1216     }
1217 }
1218 impl ::std::convert::From<HidOutputReport> for ::windows::runtime::IInspectable {
from(value: HidOutputReport) -> Self1219     fn from(value: HidOutputReport) -> Self {
1220         value.0
1221     }
1222 }
1223 impl ::std::convert::From<&HidOutputReport> for ::windows::runtime::IInspectable {
from(value: &HidOutputReport) -> Self1224     fn from(value: &HidOutputReport) -> Self {
1225         value.0.clone()
1226     }
1227 }
1228 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for HidOutputReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1229     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1230         ::windows::runtime::Param::Owned(self.0)
1231     }
1232 }
1233 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a HidOutputReport {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1234     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1235         ::windows::runtime::Param::Borrowed(&self.0)
1236     }
1237 }
1238 unsafe impl ::std::marker::Send for HidOutputReport {}
1239 unsafe impl ::std::marker::Sync for HidOutputReport {}
1240 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1241 #[repr(transparent)]
1242 pub struct HidReportType(pub i32);
1243 impl HidReportType {
1244     pub const Input: HidReportType = HidReportType(0i32);
1245     pub const Output: HidReportType = HidReportType(1i32);
1246     pub const Feature: HidReportType = HidReportType(2i32);
1247 }
1248 impl ::std::convert::From<i32> for HidReportType {
from(value: i32) -> Self1249     fn from(value: i32) -> Self {
1250         Self(value)
1251     }
1252 }
1253 unsafe impl ::windows::runtime::Abi for HidReportType {
1254     type Abi = Self;
1255     type DefaultType = Self;
1256 }
1257 unsafe impl ::windows::runtime::RuntimeType for HidReportType {
1258     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.HumanInterfaceDevice.HidReportType;i4)");
1259 }
1260 #[repr(transparent)]
1261 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1262 #[doc(hidden)]
1263 pub struct IHidBooleanControl(::windows::runtime::IInspectable);
1264 unsafe impl ::windows::runtime::Interface for IHidBooleanControl {
1265     type Vtable = IHidBooleanControl_abi;
1266     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1380840586, 13973, 16524, [187, 162, 226, 235, 90, 191, 188, 32]);
1267 }
1268 #[repr(C)]
1269 #[doc(hidden)]
1270 pub struct IHidBooleanControl_abi(
1271     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1272     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1273     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1274     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1275     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1276     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1277     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1279     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1280     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1281     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
1282     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1283 );
1284 #[repr(transparent)]
1285 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1286 #[doc(hidden)]
1287 pub struct IHidBooleanControlDescription(::windows::runtime::IInspectable);
1288 unsafe impl ::windows::runtime::Interface for IHidBooleanControlDescription {
1289     type Vtable = IHidBooleanControlDescription_abi;
1290     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1637279043, 10712, 18986, [134, 131, 132, 158, 32, 123, 190, 49]);
1291 }
1292 #[repr(C)]
1293 #[doc(hidden)]
1294 pub struct IHidBooleanControlDescription_abi(
1295     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1296     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1297     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1298     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1299     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1300     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1301     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1302     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1303     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut HidReportType) -> ::windows::runtime::HRESULT,
1304     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1305     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1306     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1307     #[cfg(not(feature = "Foundation_Collections"))] usize,
1308 );
1309 #[repr(transparent)]
1310 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1311 #[doc(hidden)]
1312 pub struct IHidBooleanControlDescription2(::windows::runtime::IInspectable);
1313 unsafe impl ::windows::runtime::Interface for IHidBooleanControlDescription2 {
1314     type Vtable = IHidBooleanControlDescription2_abi;
1315     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3371094762, 35447, 19510, [170, 0, 95, 240, 68, 157, 62, 115]);
1316 }
1317 #[repr(C)]
1318 #[doc(hidden)]
1319 pub struct IHidBooleanControlDescription2_abi(
1320     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1321     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1322     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1323     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1324     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1325     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1326     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1327 );
1328 #[repr(transparent)]
1329 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1330 #[doc(hidden)]
1331 pub struct IHidCollection(::windows::runtime::IInspectable);
1332 unsafe impl ::windows::runtime::Interface for IHidCollection {
1333     type Vtable = IHidCollection_abi;
1334     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1904866723, 13041, 18147, [190, 253, 68, 210, 102, 59, 126, 106]);
1335 }
1336 #[repr(C)]
1337 #[doc(hidden)]
1338 pub struct IHidCollection_abi(
1339     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1340     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1341     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1344     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1345     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1346     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut HidCollectionType) -> ::windows::runtime::HRESULT,
1347     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1348     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1349 );
1350 #[repr(transparent)]
1351 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1352 #[doc(hidden)]
1353 pub struct IHidDevice(::windows::runtime::IInspectable);
1354 unsafe impl ::windows::runtime::Interface for IHidDevice {
1355     type Vtable = IHidDevice_abi;
1356     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1602884839, 8704, 17198, [149, 218, 208, 155, 135, 213, 116, 168]);
1357 }
1358 #[repr(C)]
1359 #[doc(hidden)]
1360 pub struct IHidDevice_abi(
1361     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1362     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1363     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1364     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1365     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1366     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1371     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1372     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1373     #[cfg(not(feature = "Foundation"))] usize,
1374     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, reportid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1375     #[cfg(not(feature = "Foundation"))] usize,
1376     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1377     #[cfg(not(feature = "Foundation"))] usize,
1378     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, reportid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1379     #[cfg(not(feature = "Foundation"))] usize,
1380     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1381     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, reportid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, reportid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1384     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, outputreport: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1385     #[cfg(not(feature = "Foundation"))] usize,
1386     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, featurereport: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1387     #[cfg(not(feature = "Foundation"))] usize,
1388     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, reporttype: HidReportType, usagepage: u16, usageid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1389     #[cfg(not(feature = "Foundation_Collections"))] usize,
1390     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, reporttype: HidReportType, usagepage: u16, usageid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1391     #[cfg(not(feature = "Foundation_Collections"))] usize,
1392     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, reporthandler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
1393     #[cfg(not(feature = "Foundation"))] usize,
1394     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
1395     #[cfg(not(feature = "Foundation"))] usize,
1396 );
1397 #[repr(transparent)]
1398 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1399 #[doc(hidden)]
1400 pub struct IHidDeviceStatics(::windows::runtime::IInspectable);
1401 unsafe impl ::windows::runtime::Interface for IHidDeviceStatics {
1402     type Vtable = IHidDeviceStatics_abi;
1403     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2656666084, 38998, 16780, [159, 115, 119, 222, 12, 216, 87, 84]);
1404 }
1405 #[repr(C)]
1406 #[doc(hidden)]
1407 pub struct IHidDeviceStatics_abi(
1408     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1409     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1410     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1411     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1413     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1414     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, usagepage: u16, usageid: u16, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, usagepage: u16, usageid: u16, vendorid: u16, productid: u16, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1416     #[cfg(all(feature = "Foundation", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, deviceid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, accessmode: super::super::Storage::FileAccessMode, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1417     #[cfg(not(all(feature = "Foundation", feature = "Storage")))] usize,
1418 );
1419 #[repr(transparent)]
1420 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1421 #[doc(hidden)]
1422 pub struct IHidFeatureReport(::windows::runtime::IInspectable);
1423 unsafe impl ::windows::runtime::Interface for IHidFeatureReport {
1424     type Vtable = IHidFeatureReport_abi;
1425     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2216532857, 23269, 18147, [130, 239, 31, 236, 92, 137, 66, 244]);
1426 }
1427 #[repr(C)]
1428 #[doc(hidden)]
1429 pub struct IHidFeatureReport_abi(
1430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1431     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1432     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1433     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1437     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1438     #[cfg(not(feature = "Storage_Streams"))] usize,
1439     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1440     #[cfg(not(feature = "Storage_Streams"))] usize,
1441     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, usagepage: u16, usageid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1442     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, controldescription: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1443     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, usagepage: u16, usageid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1444     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, controldescription: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1445 );
1446 #[repr(transparent)]
1447 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1448 #[doc(hidden)]
1449 pub struct IHidInputReport(::windows::runtime::IInspectable);
1450 unsafe impl ::windows::runtime::Interface for IHidInputReport {
1451     type Vtable = IHidInputReport_abi;
1452     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3277655632, 63463, 20109, [178, 62, 202, 187, 229, 107, 144, 233]);
1453 }
1454 #[repr(C)]
1455 #[doc(hidden)]
1456 pub struct IHidInputReport_abi(
1457     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1458     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1459     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1460     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1461     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1462     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1463     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1464     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1465     #[cfg(not(feature = "Storage_Streams"))] usize,
1466     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1467     #[cfg(not(feature = "Foundation_Collections"))] usize,
1468     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1469     #[cfg(not(feature = "Foundation_Collections"))] usize,
1470     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, usagepage: u16, usageid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1471     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, controldescription: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1472     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, usagepage: u16, usageid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1473     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, controldescription: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1474 );
1475 #[repr(transparent)]
1476 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1477 #[doc(hidden)]
1478 pub struct IHidInputReportReceivedEventArgs(::windows::runtime::IInspectable);
1479 unsafe impl ::windows::runtime::Interface for IHidInputReportReceivedEventArgs {
1480     type Vtable = IHidInputReportReceivedEventArgs_abi;
1481     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1884931531, 22962, 19906, [152, 92, 10, 220, 97, 54, 250, 45]);
1482 }
1483 #[repr(C)]
1484 #[doc(hidden)]
1485 pub struct IHidInputReportReceivedEventArgs_abi(
1486     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1487     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1488     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1489     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1490     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1491     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1492     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1493 );
1494 #[repr(transparent)]
1495 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1496 #[doc(hidden)]
1497 pub struct IHidNumericControl(::windows::runtime::IInspectable);
1498 unsafe impl ::windows::runtime::Interface for IHidNumericControl {
1499     type Vtable = IHidNumericControl_abi;
1500     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3817476773, 13735, 19317, [137, 200, 251, 31, 40, 177, 8, 35]);
1501 }
1502 #[repr(C)]
1503 #[doc(hidden)]
1504 pub struct IHidNumericControl_abi(
1505     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1506     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1507     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1508     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1509     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1510     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1511     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1512     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1513     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1514     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1515     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i64) -> ::windows::runtime::HRESULT,
1516     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: i64) -> ::windows::runtime::HRESULT,
1517     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i64) -> ::windows::runtime::HRESULT,
1518     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: i64) -> ::windows::runtime::HRESULT,
1519     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1520 );
1521 #[repr(transparent)]
1522 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1523 #[doc(hidden)]
1524 pub struct IHidNumericControlDescription(::windows::runtime::IInspectable);
1525 unsafe impl ::windows::runtime::Interface for IHidNumericControlDescription {
1526     type Vtable = IHidNumericControlDescription_abi;
1527     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1670209158, 7575, 19573, [146, 127, 95, 245, 139, 160, 94, 50]);
1528 }
1529 #[repr(C)]
1530 #[doc(hidden)]
1531 pub struct IHidNumericControlDescription_abi(
1532     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1533     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1534     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1535     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1536     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1537     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1538     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1539     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1540     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut HidReportType) -> ::windows::runtime::HRESULT,
1541     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1542     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1543     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1544     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1545     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
1546     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
1547     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
1548     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
1549     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1550     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1551     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1552     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1553     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1554     #[cfg(not(feature = "Foundation_Collections"))] usize,
1555 );
1556 #[repr(transparent)]
1557 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1558 #[doc(hidden)]
1559 pub struct IHidOutputReport(::windows::runtime::IInspectable);
1560 unsafe impl ::windows::runtime::Interface for IHidOutputReport {
1561     type Vtable = IHidOutputReport_abi;
1562     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1657480516, 51350, 17507, [147, 193, 223, 157, 176, 83, 196, 80]);
1563 }
1564 #[repr(C)]
1565 #[doc(hidden)]
1566 pub struct IHidOutputReport_abi(
1567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1569     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1570     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1571     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1572     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1573     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u16) -> ::windows::runtime::HRESULT,
1574     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1575     #[cfg(not(feature = "Storage_Streams"))] usize,
1576     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1577     #[cfg(not(feature = "Storage_Streams"))] usize,
1578     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, usagepage: u16, usageid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, controldescription: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1580     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, usagepage: u16, usageid: u16, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1581     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, controldescription: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1582 );
1583