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 #[doc(hidden)]
5 pub struct IUsbBulkInEndpointDescriptor(::windows::runtime::IInspectable);
6 unsafe impl ::windows::runtime::Interface for IUsbBulkInEndpointDescriptor {
7     type Vtable = IUsbBulkInEndpointDescriptor_abi;
8     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1013860422, 1743, 17065, [157, 194, 151, 28, 27, 20, 182, 227]);
9 }
10 #[repr(C)]
11 #[doc(hidden)]
12 pub struct IUsbBulkInEndpointDescriptor_abi(
13     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
14     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
15     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
16     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
17     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
18     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
19     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
20     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
21     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
22 );
23 #[repr(transparent)]
24 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
25 #[doc(hidden)]
26 pub struct IUsbBulkInPipe(::windows::runtime::IInspectable);
27 unsafe impl ::windows::runtime::Interface for IUsbBulkInPipe {
28     type Vtable = IUsbBulkInPipe_abi;
29     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4028443963, 17736, 19792, [179, 38, 216, 44, 218, 190, 18, 32]);
30 }
31 #[repr(C)]
32 #[doc(hidden)]
33 pub struct IUsbBulkInPipe_abi(
34     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
35     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
36     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
37     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
38     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
39     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
40     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
41     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
42     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
43     #[cfg(not(feature = "Foundation"))] usize,
44     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: UsbReadOptions) -> ::windows::runtime::HRESULT,
45     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UsbReadOptions) -> ::windows::runtime::HRESULT,
46     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
47     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
48     #[cfg(not(feature = "Storage_Streams"))] usize,
49 );
50 #[repr(transparent)]
51 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
52 #[doc(hidden)]
53 pub struct IUsbBulkOutEndpointDescriptor(::windows::runtime::IInspectable);
54 unsafe impl ::windows::runtime::Interface for IUsbBulkOutEndpointDescriptor {
55     type Vtable = IUsbBulkOutEndpointDescriptor_abi;
56     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(673219706, 65518, 20320, [155, 225, 149, 108, 172, 62, 203, 101]);
57 }
58 #[repr(C)]
59 #[doc(hidden)]
60 pub struct IUsbBulkOutEndpointDescriptor_abi(
61     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
62     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
63     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
64     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
65     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
66     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
67     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
68     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
69     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
70 );
71 #[repr(transparent)]
72 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
73 #[doc(hidden)]
74 pub struct IUsbBulkOutPipe(::windows::runtime::IInspectable);
75 unsafe impl ::windows::runtime::Interface for IUsbBulkOutPipe {
76     type Vtable = IUsbBulkOutPipe_abi;
77     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2833903214, 277, 17834, [139, 33, 55, 178, 37, 188, 206, 231]);
78 }
79 #[repr(C)]
80 #[doc(hidden)]
81 pub struct IUsbBulkOutPipe_abi(
82     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
83     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
84     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
85     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
86     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
87     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
88     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
89     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
90     #[cfg(not(feature = "Foundation"))] usize,
91     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: UsbWriteOptions) -> ::windows::runtime::HRESULT,
92     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UsbWriteOptions) -> ::windows::runtime::HRESULT,
93     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
94     #[cfg(not(feature = "Storage_Streams"))] usize,
95 );
96 #[repr(transparent)]
97 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
98 #[doc(hidden)]
99 pub struct IUsbConfiguration(::windows::runtime::IInspectable);
100 unsafe impl ::windows::runtime::Interface for IUsbConfiguration {
101     type Vtable = IUsbConfiguration_abi;
102     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1746367529, 13993, 18135, [184, 115, 252, 104, 146, 81, 236, 48]);
103 }
104 #[repr(C)]
105 #[doc(hidden)]
106 pub struct IUsbConfiguration_abi(
107     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
108     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
109     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
110     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
111     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
112     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
113     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
114     #[cfg(not(feature = "Foundation_Collections"))] usize,
115     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
116     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
117     #[cfg(not(feature = "Foundation_Collections"))] usize,
118 );
119 #[repr(transparent)]
120 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
121 #[doc(hidden)]
122 pub struct IUsbConfigurationDescriptor(::windows::runtime::IInspectable);
123 unsafe impl ::windows::runtime::Interface for IUsbConfigurationDescriptor {
124     type Vtable = IUsbConfigurationDescriptor_abi;
125     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4061621650, 46146, 16506, [130, 7, 125, 100, 108, 3, 133, 243]);
126 }
127 #[repr(C)]
128 #[doc(hidden)]
129 pub struct IUsbConfigurationDescriptor_abi(
130     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
131     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
132     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
133     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
134     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
135     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
136     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
137     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
138     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
139     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
140 );
141 #[repr(transparent)]
142 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
143 #[doc(hidden)]
144 pub struct IUsbConfigurationDescriptorStatics(::windows::runtime::IInspectable);
145 unsafe impl ::windows::runtime::Interface for IUsbConfigurationDescriptorStatics {
146     type Vtable = IUsbConfigurationDescriptorStatics_abi;
147     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1112337811, 59200, 16545, [146, 189, 218, 18, 14, 160, 73, 20]);
148 }
149 #[repr(C)]
150 #[doc(hidden)]
151 pub struct IUsbConfigurationDescriptorStatics_abi(
152     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
153     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
154     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
155     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
156     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
157     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
158     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, descriptor: ::windows::runtime::RawPtr, parsed: *mut ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
159     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, descriptor: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
160 );
161 #[repr(transparent)]
162 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
163 #[doc(hidden)]
164 pub struct IUsbControlRequestType(::windows::runtime::IInspectable);
165 unsafe impl ::windows::runtime::Interface for IUsbControlRequestType {
166     type Vtable = IUsbControlRequestType_abi;
167     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2392090022, 55101, 18142, [148, 190, 170, 231, 240, 124, 15, 92]);
168 }
169 #[repr(C)]
170 #[doc(hidden)]
171 pub struct IUsbControlRequestType_abi(
172     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
173     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
174     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
175     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
176     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
177     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
178     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UsbTransferDirection) -> ::windows::runtime::HRESULT,
179     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: UsbTransferDirection) -> ::windows::runtime::HRESULT,
180     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UsbControlTransferType) -> ::windows::runtime::HRESULT,
181     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: UsbControlTransferType) -> ::windows::runtime::HRESULT,
182     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UsbControlRecipient) -> ::windows::runtime::HRESULT,
183     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: UsbControlRecipient) -> ::windows::runtime::HRESULT,
184     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
185     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
186 );
187 #[repr(transparent)]
188 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
189 #[doc(hidden)]
190 pub struct IUsbDescriptor(::windows::runtime::IInspectable);
191 unsafe impl ::windows::runtime::Interface for IUsbDescriptor {
192     type Vtable = IUsbDescriptor_abi;
193     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(176812566, 24477, 18548, [137, 4, 218, 154, 211, 245, 82, 143]);
194 }
195 #[repr(C)]
196 #[doc(hidden)]
197 pub struct IUsbDescriptor_abi(
198     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
199     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
200     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
201     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
202     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
203     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
204     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
205     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
206     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, buffer: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
207     #[cfg(not(feature = "Storage_Streams"))] usize,
208 );
209 #[repr(transparent)]
210 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
211 #[doc(hidden)]
212 pub struct IUsbDevice(::windows::runtime::IInspectable);
213 unsafe impl ::windows::runtime::Interface for IUsbDevice {
214     type Vtable = IUsbDevice_abi;
215     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1380563346, 50262, 17621, [173, 94, 36, 245, 160, 137, 246, 59]);
216 }
217 #[repr(C)]
218 #[doc(hidden)]
219 pub struct IUsbDevice_abi(
220     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
221     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
222     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
223     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
224     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
225     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
226     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, setuppacket: ::windows::runtime::RawPtr, buffer: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
227     #[cfg(not(all(feature = "Foundation", feature = "Storage_Streams")))] usize,
228     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, setuppacket: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
229     #[cfg(not(feature = "Foundation"))] usize,
230     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, setuppacket: ::windows::runtime::RawPtr, buffer: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
231     #[cfg(not(all(feature = "Foundation", feature = "Storage_Streams")))] usize,
232     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, setuppacket: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
233     #[cfg(not(all(feature = "Foundation", feature = "Storage_Streams")))] usize,
234     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
235     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
236     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
237 );
238 #[repr(transparent)]
239 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
240 #[doc(hidden)]
241 pub struct IUsbDeviceClass(::windows::runtime::IInspectable);
242 unsafe impl ::windows::runtime::Interface for IUsbDeviceClass {
243     type Vtable = IUsbDeviceClass_abi;
244     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(85541625, 33886, 18411, [177, 42, 56, 242, 246, 23, 175, 231]);
245 }
246 #[repr(C)]
247 #[doc(hidden)]
248 pub struct IUsbDeviceClass_abi(
249     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
250     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
251     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
252     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
253     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
254     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
255     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
256     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
257     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
258     #[cfg(not(feature = "Foundation"))] usize,
259     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
260     #[cfg(not(feature = "Foundation"))] usize,
261     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
262     #[cfg(not(feature = "Foundation"))] usize,
263     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
264     #[cfg(not(feature = "Foundation"))] usize,
265 );
266 #[repr(transparent)]
267 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
268 #[doc(hidden)]
269 pub struct IUsbDeviceClasses(::windows::runtime::IInspectable);
270 unsafe impl ::windows::runtime::Interface for IUsbDeviceClasses {
271     type Vtable = IUsbDeviceClasses_abi;
272     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1752143197, 39826, 19248, [151, 129, 194, 44, 85, 172, 53, 203]);
273 }
274 #[repr(C)]
275 #[doc(hidden)]
276 pub struct IUsbDeviceClasses_abi(
277     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
279     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
280     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
281     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
282     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
283 );
284 #[repr(transparent)]
285 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
286 #[doc(hidden)]
287 pub struct IUsbDeviceClassesStatics(::windows::runtime::IInspectable);
288 unsafe impl ::windows::runtime::Interface for IUsbDeviceClassesStatics {
289     type Vtable = IUsbDeviceClassesStatics_abi;
290     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2987066663, 50560, 17817, [161, 101, 152, 27, 79, 208, 50, 48]);
291 }
292 #[repr(C)]
293 #[doc(hidden)]
294 pub struct IUsbDeviceClassesStatics_abi(
295     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
296     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
297     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
298     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
299     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
300     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
301     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
302     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
303     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
304     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
305     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
306     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
307     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
308     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
309     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
310 );
311 #[repr(transparent)]
312 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
313 #[doc(hidden)]
314 pub struct IUsbDeviceDescriptor(::windows::runtime::IInspectable);
315 unsafe impl ::windows::runtime::Interface for IUsbDeviceDescriptor {
316     type Vtable = IUsbDeviceDescriptor_abi;
317     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(524866038, 47767, 17186, [185, 44, 181, 177, 137, 33, 101, 136]);
318 }
319 #[repr(C)]
320 #[doc(hidden)]
321 pub struct IUsbDeviceDescriptor_abi(
322     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
323     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
324     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
325     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
326     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
327     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
328     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
329     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
330     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
331     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
332     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
333     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
334 );
335 #[repr(transparent)]
336 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
337 #[doc(hidden)]
338 pub struct IUsbDeviceStatics(::windows::runtime::IInspectable);
339 unsafe impl ::windows::runtime::Interface for IUsbDeviceStatics {
340     type Vtable = IUsbDeviceStatics_abi;
341     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(107709858, 2487, 17478, [133, 2, 111, 230, 220, 170, 115, 9]);
342 }
343 #[repr(C)]
344 #[doc(hidden)]
345 pub struct IUsbDeviceStatics_abi(
346     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
347     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
348     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
349     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
350     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
351     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
352     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, vendorid: u32, productid: u32, winusbinterfaceclass: ::windows::runtime::GUID, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
353     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, winusbinterfaceclass: ::windows::runtime::GUID, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
354     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, vendorid: u32, productid: u32, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
355     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, usbclass: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
356     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, deviceid: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
357     #[cfg(not(feature = "Foundation"))] usize,
358 );
359 #[repr(transparent)]
360 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
361 #[doc(hidden)]
362 pub struct IUsbEndpointDescriptor(::windows::runtime::IInspectable);
363 unsafe impl ::windows::runtime::Interface for IUsbEndpointDescriptor {
364     type Vtable = IUsbEndpointDescriptor_abi;
365     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1799906009, 36343, 19264, [172, 131, 87, 143, 19, 159, 5, 117]);
366 }
367 #[repr(C)]
368 #[doc(hidden)]
369 pub struct IUsbEndpointDescriptor_abi(
370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
371     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
372     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
373     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
374     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
375     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
376     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
377     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UsbTransferDirection) -> ::windows::runtime::HRESULT,
378     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UsbEndpointType) -> ::windows::runtime::HRESULT,
379     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
380     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
381     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
383 );
384 #[repr(transparent)]
385 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
386 #[doc(hidden)]
387 pub struct IUsbEndpointDescriptorStatics(::windows::runtime::IInspectable);
388 unsafe impl ::windows::runtime::Interface for IUsbEndpointDescriptorStatics {
389     type Vtable = IUsbEndpointDescriptorStatics_abi;
390     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3364925953, 39530, 18782, [168, 44, 41, 91, 158, 112, 129, 6]);
391 }
392 #[repr(C)]
393 #[doc(hidden)]
394 pub struct IUsbEndpointDescriptorStatics_abi(
395     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
396     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
397     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
398     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
399     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
400     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, descriptor: ::windows::runtime::RawPtr, parsed: *mut ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, descriptor: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
403 );
404 #[repr(transparent)]
405 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
406 #[doc(hidden)]
407 pub struct IUsbInterface(::windows::runtime::IInspectable);
408 unsafe impl ::windows::runtime::Interface for IUsbInterface {
409     type Vtable = IUsbInterface_abi;
410     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2687642517, 32583, 18603, [167, 39, 103, 140, 37, 190, 33, 18]);
411 }
412 #[repr(C)]
413 #[doc(hidden)]
414 pub struct IUsbInterface_abi(
415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
416     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
417     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
418     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
419     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
421     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
422     #[cfg(not(feature = "Foundation_Collections"))] usize,
423     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
424     #[cfg(not(feature = "Foundation_Collections"))] usize,
425     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
426     #[cfg(not(feature = "Foundation_Collections"))] usize,
427     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
428     #[cfg(not(feature = "Foundation_Collections"))] usize,
429     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
430     #[cfg(not(feature = "Foundation_Collections"))] usize,
431     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
432     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
433     #[cfg(not(feature = "Foundation_Collections"))] usize,
434 );
435 #[repr(transparent)]
436 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
437 #[doc(hidden)]
438 pub struct IUsbInterfaceDescriptor(::windows::runtime::IInspectable);
439 unsafe impl ::windows::runtime::Interface for IUsbInterfaceDescriptor {
440     type Vtable = IUsbInterfaceDescriptor_abi;
441     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(429289671, 47086, 20368, [140, 213, 148, 162, 226, 87, 89, 138]);
442 }
443 #[repr(C)]
444 #[doc(hidden)]
445 pub struct IUsbInterfaceDescriptor_abi(
446     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
447     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
448     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
449     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
450     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
451     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
452     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
453     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
454     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
455     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
456     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
457 );
458 #[repr(transparent)]
459 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
460 #[doc(hidden)]
461 pub struct IUsbInterfaceDescriptorStatics(::windows::runtime::IInspectable);
462 unsafe impl ::windows::runtime::Interface for IUsbInterfaceDescriptorStatics {
463     type Vtable = IUsbInterfaceDescriptorStatics_abi;
464     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3813318645, 30678, 18614, [176, 190, 22, 198, 66, 35, 22, 254]);
465 }
466 #[repr(C)]
467 #[doc(hidden)]
468 pub struct IUsbInterfaceDescriptorStatics_abi(
469     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
470     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
471     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
472     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
473     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
474     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
475     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, descriptor: ::windows::runtime::RawPtr, parsed: *mut ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
476     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, descriptor: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
477 );
478 #[repr(transparent)]
479 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
480 #[doc(hidden)]
481 pub struct IUsbInterfaceSetting(::windows::runtime::IInspectable);
482 unsafe impl ::windows::runtime::Interface for IUsbInterfaceSetting {
483     type Vtable = IUsbInterfaceSetting_abi;
484     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(405257127, 36263, 19191, [143, 76, 127, 48, 50, 231, 129, 245]);
485 }
486 #[repr(C)]
487 #[doc(hidden)]
488 pub struct IUsbInterfaceSetting_abi(
489     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
490     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
491     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
492     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
493     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
494     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
495     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
496     #[cfg(not(feature = "Foundation_Collections"))] usize,
497     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
498     #[cfg(not(feature = "Foundation_Collections"))] usize,
499     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
500     #[cfg(not(feature = "Foundation_Collections"))] usize,
501     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
502     #[cfg(not(feature = "Foundation_Collections"))] usize,
503     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
504     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
505     #[cfg(not(feature = "Foundation"))] usize,
506     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
507     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
508     #[cfg(not(feature = "Foundation_Collections"))] usize,
509 );
510 #[repr(transparent)]
511 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
512 #[doc(hidden)]
513 pub struct IUsbInterruptInEndpointDescriptor(::windows::runtime::IInspectable);
514 unsafe impl ::windows::runtime::Interface for IUsbInterruptInEndpointDescriptor {
515     type Vtable = IUsbInterruptInEndpointDescriptor_abi;
516     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3226634599, 51473, 19514, [134, 178, 65, 156, 45, 168, 144, 57]);
517 }
518 #[repr(C)]
519 #[doc(hidden)]
520 pub struct IUsbInterruptInEndpointDescriptor_abi(
521     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
522     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
523     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
524     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
525     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
526     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
527     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
528     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
529     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
530     #[cfg(not(feature = "Foundation"))] usize,
531     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
532 );
533 #[repr(transparent)]
534 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
535 #[doc(hidden)]
536 pub struct IUsbInterruptInEventArgs(::windows::runtime::IInspectable);
537 unsafe impl ::windows::runtime::Interface for IUsbInterruptInEventArgs {
538     type Vtable = IUsbInterruptInEventArgs_abi;
539     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3081781394, 5144, 18742, [130, 9, 41, 156, 245, 96, 85, 131]);
540 }
541 #[repr(C)]
542 #[doc(hidden)]
543 pub struct IUsbInterruptInEventArgs_abi(
544     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
545     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
546     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
547     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
548     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
549     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
550     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
551     #[cfg(not(feature = "Storage_Streams"))] usize,
552 );
553 #[repr(transparent)]
554 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
555 #[doc(hidden)]
556 pub struct IUsbInterruptInPipe(::windows::runtime::IInspectable);
557 unsafe impl ::windows::runtime::Interface for IUsbInterruptInPipe {
558     type Vtable = IUsbInterruptInPipe_abi;
559     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4194332950, 34007, 18631, [138, 63, 76, 11, 35, 95, 46, 166]);
560 }
561 #[repr(C)]
562 #[doc(hidden)]
563 pub struct IUsbInterruptInPipe_abi(
564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
566     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
569     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
570     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
571     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
572     #[cfg(not(feature = "Foundation"))] usize,
573     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
574     #[cfg(not(feature = "Foundation"))] usize,
575     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
576     #[cfg(not(feature = "Foundation"))] usize,
577 );
578 #[repr(transparent)]
579 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
580 #[doc(hidden)]
581 pub struct IUsbInterruptOutEndpointDescriptor(::windows::runtime::IInspectable);
582 unsafe impl ::windows::runtime::Interface for IUsbInterruptOutEndpointDescriptor {
583     type Vtable = IUsbInterruptOutEndpointDescriptor_abi;
584     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3433033089, 4298, 17715, [149, 45, 158, 39, 131, 65, 232, 15]);
585 }
586 #[repr(C)]
587 #[doc(hidden)]
588 pub struct IUsbInterruptOutEndpointDescriptor_abi(
589     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
590     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
591     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
592     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
593     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
594     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
595     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
596     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
597     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
598     #[cfg(not(feature = "Foundation"))] usize,
599     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
600 );
601 #[repr(transparent)]
602 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
603 #[doc(hidden)]
604 pub struct IUsbInterruptOutPipe(::windows::runtime::IInspectable);
605 unsafe impl ::windows::runtime::Interface for IUsbInterruptOutPipe {
606     type Vtable = IUsbInterruptOutPipe_abi;
607     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3917793449, 43769, 18896, [185, 108, 246, 97, 171, 74, 127, 149]);
608 }
609 #[repr(C)]
610 #[doc(hidden)]
611 pub struct IUsbInterruptOutPipe_abi(
612     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
613     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
614     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
615     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
618     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
619     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
620     #[cfg(not(feature = "Foundation"))] usize,
621     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: UsbWriteOptions) -> ::windows::runtime::HRESULT,
622     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut UsbWriteOptions) -> ::windows::runtime::HRESULT,
623     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
624     #[cfg(not(feature = "Storage_Streams"))] usize,
625 );
626 #[repr(transparent)]
627 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
628 #[doc(hidden)]
629 pub struct IUsbSetupPacket(::windows::runtime::IInspectable);
630 unsafe impl ::windows::runtime::Interface for IUsbSetupPacket {
631     type Vtable = IUsbSetupPacket_abi;
632     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(273391922, 51087, 19537, [182, 84, 228, 157, 2, 242, 203, 3]);
633 }
634 #[repr(C)]
635 #[doc(hidden)]
636 pub struct IUsbSetupPacket_abi(
637     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
638     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
639     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
641     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
642     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
644     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
645     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u8) -> ::windows::runtime::HRESULT,
646     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u8) -> ::windows::runtime::HRESULT,
647     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
648     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
649     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
650     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
651     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
652     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
653 );
654 #[repr(transparent)]
655 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
656 #[doc(hidden)]
657 pub struct IUsbSetupPacketFactory(::windows::runtime::IInspectable);
658 unsafe impl ::windows::runtime::Interface for IUsbSetupPacketFactory {
659     type Vtable = IUsbSetupPacketFactory_abi;
660     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3374677328, 6958, 19009, [162, 167, 51, 143, 12, 239, 60, 20]);
661 }
662 #[repr(C)]
663 #[doc(hidden)]
664 pub struct IUsbSetupPacketFactory_abi(
665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
666     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
667     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
668     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
669     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
670     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
671     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, eightbytebuffer: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
672     #[cfg(not(feature = "Storage_Streams"))] usize,
673 );
674 #[repr(transparent)]
675 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
676 pub struct UsbBulkInEndpointDescriptor(::windows::runtime::IInspectable);
677 impl UsbBulkInEndpointDescriptor {
MaxPacketSize(&self) -> ::windows::runtime::Result<u32>678     pub fn MaxPacketSize(&self) -> ::windows::runtime::Result<u32> {
679         let this = self;
680         unsafe {
681             let mut result__: u32 = ::std::mem::zeroed();
682             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
683         }
684     }
EndpointNumber(&self) -> ::windows::runtime::Result<u8>685     pub fn EndpointNumber(&self) -> ::windows::runtime::Result<u8> {
686         let this = self;
687         unsafe {
688             let mut result__: u8 = ::std::mem::zeroed();
689             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
690         }
691     }
Pipe(&self) -> ::windows::runtime::Result<UsbBulkInPipe>692     pub fn Pipe(&self) -> ::windows::runtime::Result<UsbBulkInPipe> {
693         let this = self;
694         unsafe {
695             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
696             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbBulkInPipe>(result__)
697         }
698     }
699 }
700 unsafe impl ::windows::runtime::RuntimeType for UsbBulkInEndpointDescriptor {
701     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbBulkInEndpointDescriptor;{3c6e4846-06cf-42a9-9dc2-971c1b14b6e3})");
702 }
703 unsafe impl ::windows::runtime::Interface for UsbBulkInEndpointDescriptor {
704     type Vtable = IUsbBulkInEndpointDescriptor_abi;
705     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1013860422, 1743, 17065, [157, 194, 151, 28, 27, 20, 182, 227]);
706 }
707 impl ::windows::runtime::RuntimeName for UsbBulkInEndpointDescriptor {
708     const NAME: &'static str = "Windows.Devices.Usb.UsbBulkInEndpointDescriptor";
709 }
710 impl ::std::convert::From<UsbBulkInEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: UsbBulkInEndpointDescriptor) -> Self711     fn from(value: UsbBulkInEndpointDescriptor) -> Self {
712         unsafe { ::std::mem::transmute(value) }
713     }
714 }
715 impl ::std::convert::From<&UsbBulkInEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: &UsbBulkInEndpointDescriptor) -> Self716     fn from(value: &UsbBulkInEndpointDescriptor) -> Self {
717         ::std::convert::From::from(::std::clone::Clone::clone(value))
718     }
719 }
720 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbBulkInEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>721     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
722         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
723     }
724 }
725 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbBulkInEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>726     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
727         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
728     }
729 }
730 impl ::std::convert::From<UsbBulkInEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: UsbBulkInEndpointDescriptor) -> Self731     fn from(value: UsbBulkInEndpointDescriptor) -> Self {
732         value.0
733     }
734 }
735 impl ::std::convert::From<&UsbBulkInEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: &UsbBulkInEndpointDescriptor) -> Self736     fn from(value: &UsbBulkInEndpointDescriptor) -> Self {
737         value.0.clone()
738     }
739 }
740 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbBulkInEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>741     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
742         ::windows::runtime::Param::Owned(self.0)
743     }
744 }
745 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbBulkInEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>746     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
747         ::windows::runtime::Param::Borrowed(&self.0)
748     }
749 }
750 unsafe impl ::std::marker::Send for UsbBulkInEndpointDescriptor {}
751 unsafe impl ::std::marker::Sync for UsbBulkInEndpointDescriptor {}
752 #[repr(transparent)]
753 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
754 pub struct UsbBulkInPipe(::windows::runtime::IInspectable);
755 impl UsbBulkInPipe {
MaxTransferSizeBytes(&self) -> ::windows::runtime::Result<u32>756     pub fn MaxTransferSizeBytes(&self) -> ::windows::runtime::Result<u32> {
757         let this = self;
758         unsafe {
759             let mut result__: u32 = ::std::mem::zeroed();
760             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
761         }
762     }
EndpointDescriptor(&self) -> ::windows::runtime::Result<UsbBulkInEndpointDescriptor>763     pub fn EndpointDescriptor(&self) -> ::windows::runtime::Result<UsbBulkInEndpointDescriptor> {
764         let this = self;
765         unsafe {
766             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
767             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbBulkInEndpointDescriptor>(result__)
768         }
769     }
770     #[cfg(feature = "Foundation")]
ClearStallAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>771     pub fn ClearStallAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
772         let this = self;
773         unsafe {
774             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
775             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
776         }
777     }
SetReadOptions(&self, value: UsbReadOptions) -> ::windows::runtime::Result<()>778     pub fn SetReadOptions(&self, value: UsbReadOptions) -> ::windows::runtime::Result<()> {
779         let this = self;
780         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
781     }
ReadOptions(&self) -> ::windows::runtime::Result<UsbReadOptions>782     pub fn ReadOptions(&self) -> ::windows::runtime::Result<UsbReadOptions> {
783         let this = self;
784         unsafe {
785             let mut result__: UsbReadOptions = ::std::mem::zeroed();
786             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbReadOptions>(result__)
787         }
788     }
FlushBuffer(&self) -> ::windows::runtime::Result<()>789     pub fn FlushBuffer(&self) -> ::windows::runtime::Result<()> {
790         let this = self;
791         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this)).ok() }
792     }
793     #[cfg(feature = "Storage_Streams")]
InputStream(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IInputStream>794     pub fn InputStream(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IInputStream> {
795         let this = self;
796         unsafe {
797             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
798             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IInputStream>(result__)
799         }
800     }
801 }
802 unsafe impl ::windows::runtime::RuntimeType for UsbBulkInPipe {
803     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbBulkInPipe;{f01d2d3b-4548-4d50-b326-d82cdabe1220})");
804 }
805 unsafe impl ::windows::runtime::Interface for UsbBulkInPipe {
806     type Vtable = IUsbBulkInPipe_abi;
807     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4028443963, 17736, 19792, [179, 38, 216, 44, 218, 190, 18, 32]);
808 }
809 impl ::windows::runtime::RuntimeName for UsbBulkInPipe {
810     const NAME: &'static str = "Windows.Devices.Usb.UsbBulkInPipe";
811 }
812 impl ::std::convert::From<UsbBulkInPipe> for ::windows::runtime::IUnknown {
from(value: UsbBulkInPipe) -> Self813     fn from(value: UsbBulkInPipe) -> Self {
814         unsafe { ::std::mem::transmute(value) }
815     }
816 }
817 impl ::std::convert::From<&UsbBulkInPipe> for ::windows::runtime::IUnknown {
from(value: &UsbBulkInPipe) -> Self818     fn from(value: &UsbBulkInPipe) -> Self {
819         ::std::convert::From::from(::std::clone::Clone::clone(value))
820     }
821 }
822 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbBulkInPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>823     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
824         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
825     }
826 }
827 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbBulkInPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>828     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
829         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
830     }
831 }
832 impl ::std::convert::From<UsbBulkInPipe> for ::windows::runtime::IInspectable {
from(value: UsbBulkInPipe) -> Self833     fn from(value: UsbBulkInPipe) -> Self {
834         value.0
835     }
836 }
837 impl ::std::convert::From<&UsbBulkInPipe> for ::windows::runtime::IInspectable {
from(value: &UsbBulkInPipe) -> Self838     fn from(value: &UsbBulkInPipe) -> Self {
839         value.0.clone()
840     }
841 }
842 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbBulkInPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>843     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
844         ::windows::runtime::Param::Owned(self.0)
845     }
846 }
847 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbBulkInPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>848     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
849         ::windows::runtime::Param::Borrowed(&self.0)
850     }
851 }
852 unsafe impl ::std::marker::Send for UsbBulkInPipe {}
853 unsafe impl ::std::marker::Sync for UsbBulkInPipe {}
854 #[repr(transparent)]
855 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
856 pub struct UsbBulkOutEndpointDescriptor(::windows::runtime::IInspectable);
857 impl UsbBulkOutEndpointDescriptor {
MaxPacketSize(&self) -> ::windows::runtime::Result<u32>858     pub fn MaxPacketSize(&self) -> ::windows::runtime::Result<u32> {
859         let this = self;
860         unsafe {
861             let mut result__: u32 = ::std::mem::zeroed();
862             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
863         }
864     }
EndpointNumber(&self) -> ::windows::runtime::Result<u8>865     pub fn EndpointNumber(&self) -> ::windows::runtime::Result<u8> {
866         let this = self;
867         unsafe {
868             let mut result__: u8 = ::std::mem::zeroed();
869             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
870         }
871     }
Pipe(&self) -> ::windows::runtime::Result<UsbBulkOutPipe>872     pub fn Pipe(&self) -> ::windows::runtime::Result<UsbBulkOutPipe> {
873         let this = self;
874         unsafe {
875             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
876             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbBulkOutPipe>(result__)
877         }
878     }
879 }
880 unsafe impl ::windows::runtime::RuntimeType for UsbBulkOutEndpointDescriptor {
881     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbBulkOutEndpointDescriptor;{2820847a-ffee-4f60-9be1-956cac3ecb65})");
882 }
883 unsafe impl ::windows::runtime::Interface for UsbBulkOutEndpointDescriptor {
884     type Vtable = IUsbBulkOutEndpointDescriptor_abi;
885     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(673219706, 65518, 20320, [155, 225, 149, 108, 172, 62, 203, 101]);
886 }
887 impl ::windows::runtime::RuntimeName for UsbBulkOutEndpointDescriptor {
888     const NAME: &'static str = "Windows.Devices.Usb.UsbBulkOutEndpointDescriptor";
889 }
890 impl ::std::convert::From<UsbBulkOutEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: UsbBulkOutEndpointDescriptor) -> Self891     fn from(value: UsbBulkOutEndpointDescriptor) -> Self {
892         unsafe { ::std::mem::transmute(value) }
893     }
894 }
895 impl ::std::convert::From<&UsbBulkOutEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: &UsbBulkOutEndpointDescriptor) -> Self896     fn from(value: &UsbBulkOutEndpointDescriptor) -> Self {
897         ::std::convert::From::from(::std::clone::Clone::clone(value))
898     }
899 }
900 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbBulkOutEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>901     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
902         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
903     }
904 }
905 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbBulkOutEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>906     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
907         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
908     }
909 }
910 impl ::std::convert::From<UsbBulkOutEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: UsbBulkOutEndpointDescriptor) -> Self911     fn from(value: UsbBulkOutEndpointDescriptor) -> Self {
912         value.0
913     }
914 }
915 impl ::std::convert::From<&UsbBulkOutEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: &UsbBulkOutEndpointDescriptor) -> Self916     fn from(value: &UsbBulkOutEndpointDescriptor) -> Self {
917         value.0.clone()
918     }
919 }
920 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbBulkOutEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>921     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
922         ::windows::runtime::Param::Owned(self.0)
923     }
924 }
925 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbBulkOutEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>926     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
927         ::windows::runtime::Param::Borrowed(&self.0)
928     }
929 }
930 unsafe impl ::std::marker::Send for UsbBulkOutEndpointDescriptor {}
931 unsafe impl ::std::marker::Sync for UsbBulkOutEndpointDescriptor {}
932 #[repr(transparent)]
933 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
934 pub struct UsbBulkOutPipe(::windows::runtime::IInspectable);
935 impl UsbBulkOutPipe {
EndpointDescriptor(&self) -> ::windows::runtime::Result<UsbBulkOutEndpointDescriptor>936     pub fn EndpointDescriptor(&self) -> ::windows::runtime::Result<UsbBulkOutEndpointDescriptor> {
937         let this = self;
938         unsafe {
939             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
940             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbBulkOutEndpointDescriptor>(result__)
941         }
942     }
943     #[cfg(feature = "Foundation")]
ClearStallAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>944     pub fn ClearStallAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
945         let this = self;
946         unsafe {
947             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
948             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
949         }
950     }
SetWriteOptions(&self, value: UsbWriteOptions) -> ::windows::runtime::Result<()>951     pub fn SetWriteOptions(&self, value: UsbWriteOptions) -> ::windows::runtime::Result<()> {
952         let this = self;
953         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
954     }
WriteOptions(&self) -> ::windows::runtime::Result<UsbWriteOptions>955     pub fn WriteOptions(&self) -> ::windows::runtime::Result<UsbWriteOptions> {
956         let this = self;
957         unsafe {
958             let mut result__: UsbWriteOptions = ::std::mem::zeroed();
959             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbWriteOptions>(result__)
960         }
961     }
962     #[cfg(feature = "Storage_Streams")]
OutputStream(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IOutputStream>963     pub fn OutputStream(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IOutputStream> {
964         let this = self;
965         unsafe {
966             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
967             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IOutputStream>(result__)
968         }
969     }
970 }
971 unsafe impl ::windows::runtime::RuntimeType for UsbBulkOutPipe {
972     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbBulkOutPipe;{a8e9ee6e-0115-45aa-8b21-37b225bccee7})");
973 }
974 unsafe impl ::windows::runtime::Interface for UsbBulkOutPipe {
975     type Vtable = IUsbBulkOutPipe_abi;
976     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2833903214, 277, 17834, [139, 33, 55, 178, 37, 188, 206, 231]);
977 }
978 impl ::windows::runtime::RuntimeName for UsbBulkOutPipe {
979     const NAME: &'static str = "Windows.Devices.Usb.UsbBulkOutPipe";
980 }
981 impl ::std::convert::From<UsbBulkOutPipe> for ::windows::runtime::IUnknown {
from(value: UsbBulkOutPipe) -> Self982     fn from(value: UsbBulkOutPipe) -> Self {
983         unsafe { ::std::mem::transmute(value) }
984     }
985 }
986 impl ::std::convert::From<&UsbBulkOutPipe> for ::windows::runtime::IUnknown {
from(value: &UsbBulkOutPipe) -> Self987     fn from(value: &UsbBulkOutPipe) -> Self {
988         ::std::convert::From::from(::std::clone::Clone::clone(value))
989     }
990 }
991 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbBulkOutPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>992     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
993         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
994     }
995 }
996 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbBulkOutPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>997     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
998         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
999     }
1000 }
1001 impl ::std::convert::From<UsbBulkOutPipe> for ::windows::runtime::IInspectable {
from(value: UsbBulkOutPipe) -> Self1002     fn from(value: UsbBulkOutPipe) -> Self {
1003         value.0
1004     }
1005 }
1006 impl ::std::convert::From<&UsbBulkOutPipe> for ::windows::runtime::IInspectable {
from(value: &UsbBulkOutPipe) -> Self1007     fn from(value: &UsbBulkOutPipe) -> Self {
1008         value.0.clone()
1009     }
1010 }
1011 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbBulkOutPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1012     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1013         ::windows::runtime::Param::Owned(self.0)
1014     }
1015 }
1016 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbBulkOutPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1017     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1018         ::windows::runtime::Param::Borrowed(&self.0)
1019     }
1020 }
1021 unsafe impl ::std::marker::Send for UsbBulkOutPipe {}
1022 unsafe impl ::std::marker::Sync for UsbBulkOutPipe {}
1023 #[repr(transparent)]
1024 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1025 pub struct UsbConfiguration(::windows::runtime::IInspectable);
1026 impl UsbConfiguration {
1027     #[cfg(feature = "Foundation_Collections")]
UsbInterfaces(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterface>>1028     pub fn UsbInterfaces(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterface>> {
1029         let this = self;
1030         unsafe {
1031             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1032             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbInterface>>(result__)
1033         }
1034     }
ConfigurationDescriptor(&self) -> ::windows::runtime::Result<UsbConfigurationDescriptor>1035     pub fn ConfigurationDescriptor(&self) -> ::windows::runtime::Result<UsbConfigurationDescriptor> {
1036         let this = self;
1037         unsafe {
1038             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1039             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbConfigurationDescriptor>(result__)
1040         }
1041     }
1042     #[cfg(feature = "Foundation_Collections")]
Descriptors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbDescriptor>>1043     pub fn Descriptors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbDescriptor>> {
1044         let this = self;
1045         unsafe {
1046             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1047             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbDescriptor>>(result__)
1048         }
1049     }
1050 }
1051 unsafe impl ::windows::runtime::RuntimeType for UsbConfiguration {
1052     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbConfiguration;{68177429-36a9-46d7-b873-fc689251ec30})");
1053 }
1054 unsafe impl ::windows::runtime::Interface for UsbConfiguration {
1055     type Vtable = IUsbConfiguration_abi;
1056     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1746367529, 13993, 18135, [184, 115, 252, 104, 146, 81, 236, 48]);
1057 }
1058 impl ::windows::runtime::RuntimeName for UsbConfiguration {
1059     const NAME: &'static str = "Windows.Devices.Usb.UsbConfiguration";
1060 }
1061 impl ::std::convert::From<UsbConfiguration> for ::windows::runtime::IUnknown {
from(value: UsbConfiguration) -> Self1062     fn from(value: UsbConfiguration) -> Self {
1063         unsafe { ::std::mem::transmute(value) }
1064     }
1065 }
1066 impl ::std::convert::From<&UsbConfiguration> for ::windows::runtime::IUnknown {
from(value: &UsbConfiguration) -> Self1067     fn from(value: &UsbConfiguration) -> Self {
1068         ::std::convert::From::from(::std::clone::Clone::clone(value))
1069     }
1070 }
1071 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1072     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1073         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1074     }
1075 }
1076 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1077     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1078         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1079     }
1080 }
1081 impl ::std::convert::From<UsbConfiguration> for ::windows::runtime::IInspectable {
from(value: UsbConfiguration) -> Self1082     fn from(value: UsbConfiguration) -> Self {
1083         value.0
1084     }
1085 }
1086 impl ::std::convert::From<&UsbConfiguration> for ::windows::runtime::IInspectable {
from(value: &UsbConfiguration) -> Self1087     fn from(value: &UsbConfiguration) -> Self {
1088         value.0.clone()
1089     }
1090 }
1091 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1092     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1093         ::windows::runtime::Param::Owned(self.0)
1094     }
1095 }
1096 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1097     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1098         ::windows::runtime::Param::Borrowed(&self.0)
1099     }
1100 }
1101 unsafe impl ::std::marker::Send for UsbConfiguration {}
1102 unsafe impl ::std::marker::Sync for UsbConfiguration {}
1103 #[repr(transparent)]
1104 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1105 pub struct UsbConfigurationDescriptor(::windows::runtime::IInspectable);
1106 impl UsbConfigurationDescriptor {
ConfigurationValue(&self) -> ::windows::runtime::Result<u8>1107     pub fn ConfigurationValue(&self) -> ::windows::runtime::Result<u8> {
1108         let this = self;
1109         unsafe {
1110             let mut result__: u8 = ::std::mem::zeroed();
1111             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
1112         }
1113     }
MaxPowerMilliamps(&self) -> ::windows::runtime::Result<u32>1114     pub fn MaxPowerMilliamps(&self) -> ::windows::runtime::Result<u32> {
1115         let this = self;
1116         unsafe {
1117             let mut result__: u32 = ::std::mem::zeroed();
1118             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1119         }
1120     }
SelfPowered(&self) -> ::windows::runtime::Result<bool>1121     pub fn SelfPowered(&self) -> ::windows::runtime::Result<bool> {
1122         let this = self;
1123         unsafe {
1124             let mut result__: bool = ::std::mem::zeroed();
1125             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1126         }
1127     }
RemoteWakeup(&self) -> ::windows::runtime::Result<bool>1128     pub fn RemoteWakeup(&self) -> ::windows::runtime::Result<bool> {
1129         let this = self;
1130         unsafe {
1131             let mut result__: bool = ::std::mem::zeroed();
1132             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1133         }
1134     }
TryParse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0, parsed: &mut ::std::option::Option<UsbConfigurationDescriptor>) -> ::windows::runtime::Result<bool>1135     pub fn TryParse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0, parsed: &mut ::std::option::Option<UsbConfigurationDescriptor>) -> ::windows::runtime::Result<bool> {
1136         Self::IUsbConfigurationDescriptorStatics(|this| unsafe {
1137             let mut result__: bool = ::std::mem::zeroed();
1138             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), descriptor.into_param().abi(), parsed as *mut _ as _, &mut result__).from_abi::<bool>(result__)
1139         })
1140     }
Parse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0) -> ::windows::runtime::Result<UsbConfigurationDescriptor>1141     pub fn Parse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0) -> ::windows::runtime::Result<UsbConfigurationDescriptor> {
1142         Self::IUsbConfigurationDescriptorStatics(|this| unsafe {
1143             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1144             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), descriptor.into_param().abi(), &mut result__).from_abi::<UsbConfigurationDescriptor>(result__)
1145         })
1146     }
IUsbConfigurationDescriptorStatics<R, F: FnOnce(&IUsbConfigurationDescriptorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1147     pub fn IUsbConfigurationDescriptorStatics<R, F: FnOnce(&IUsbConfigurationDescriptorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1148         static mut SHARED: ::windows::runtime::FactoryCache<UsbConfigurationDescriptor, IUsbConfigurationDescriptorStatics> = ::windows::runtime::FactoryCache::new();
1149         unsafe { SHARED.call(callback) }
1150     }
1151 }
1152 unsafe impl ::windows::runtime::RuntimeType for UsbConfigurationDescriptor {
1153     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbConfigurationDescriptor;{f2176d92-b442-407a-8207-7d646c0385f3})");
1154 }
1155 unsafe impl ::windows::runtime::Interface for UsbConfigurationDescriptor {
1156     type Vtable = IUsbConfigurationDescriptor_abi;
1157     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4061621650, 46146, 16506, [130, 7, 125, 100, 108, 3, 133, 243]);
1158 }
1159 impl ::windows::runtime::RuntimeName for UsbConfigurationDescriptor {
1160     const NAME: &'static str = "Windows.Devices.Usb.UsbConfigurationDescriptor";
1161 }
1162 impl ::std::convert::From<UsbConfigurationDescriptor> for ::windows::runtime::IUnknown {
from(value: UsbConfigurationDescriptor) -> Self1163     fn from(value: UsbConfigurationDescriptor) -> Self {
1164         unsafe { ::std::mem::transmute(value) }
1165     }
1166 }
1167 impl ::std::convert::From<&UsbConfigurationDescriptor> for ::windows::runtime::IUnknown {
from(value: &UsbConfigurationDescriptor) -> Self1168     fn from(value: &UsbConfigurationDescriptor) -> Self {
1169         ::std::convert::From::from(::std::clone::Clone::clone(value))
1170     }
1171 }
1172 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbConfigurationDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1173     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1174         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1175     }
1176 }
1177 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbConfigurationDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1178     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1179         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1180     }
1181 }
1182 impl ::std::convert::From<UsbConfigurationDescriptor> for ::windows::runtime::IInspectable {
from(value: UsbConfigurationDescriptor) -> Self1183     fn from(value: UsbConfigurationDescriptor) -> Self {
1184         value.0
1185     }
1186 }
1187 impl ::std::convert::From<&UsbConfigurationDescriptor> for ::windows::runtime::IInspectable {
from(value: &UsbConfigurationDescriptor) -> Self1188     fn from(value: &UsbConfigurationDescriptor) -> Self {
1189         value.0.clone()
1190     }
1191 }
1192 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbConfigurationDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1193     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1194         ::windows::runtime::Param::Owned(self.0)
1195     }
1196 }
1197 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbConfigurationDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1198     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1199         ::windows::runtime::Param::Borrowed(&self.0)
1200     }
1201 }
1202 unsafe impl ::std::marker::Send for UsbConfigurationDescriptor {}
1203 unsafe impl ::std::marker::Sync for UsbConfigurationDescriptor {}
1204 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1205 #[repr(transparent)]
1206 pub struct UsbControlRecipient(pub i32);
1207 impl UsbControlRecipient {
1208     pub const Device: UsbControlRecipient = UsbControlRecipient(0i32);
1209     pub const SpecifiedInterface: UsbControlRecipient = UsbControlRecipient(1i32);
1210     pub const Endpoint: UsbControlRecipient = UsbControlRecipient(2i32);
1211     pub const Other: UsbControlRecipient = UsbControlRecipient(3i32);
1212     pub const DefaultInterface: UsbControlRecipient = UsbControlRecipient(4i32);
1213 }
1214 impl ::std::convert::From<i32> for UsbControlRecipient {
from(value: i32) -> Self1215     fn from(value: i32) -> Self {
1216         Self(value)
1217     }
1218 }
1219 unsafe impl ::windows::runtime::Abi for UsbControlRecipient {
1220     type Abi = Self;
1221     type DefaultType = Self;
1222 }
1223 unsafe impl ::windows::runtime::RuntimeType for UsbControlRecipient {
1224     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Usb.UsbControlRecipient;i4)");
1225 }
1226 #[repr(transparent)]
1227 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1228 pub struct UsbControlRequestType(::windows::runtime::IInspectable);
1229 impl UsbControlRequestType {
new() -> ::windows::runtime::Result<Self>1230     pub fn new() -> ::windows::runtime::Result<Self> {
1231         Self::IActivationFactory(|f| f.activate_instance::<Self>())
1232     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1233     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1234         static mut SHARED: ::windows::runtime::FactoryCache<UsbControlRequestType, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
1235         unsafe { SHARED.call(callback) }
1236     }
Direction(&self) -> ::windows::runtime::Result<UsbTransferDirection>1237     pub fn Direction(&self) -> ::windows::runtime::Result<UsbTransferDirection> {
1238         let this = self;
1239         unsafe {
1240             let mut result__: UsbTransferDirection = ::std::mem::zeroed();
1241             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbTransferDirection>(result__)
1242         }
1243     }
SetDirection(&self, value: UsbTransferDirection) -> ::windows::runtime::Result<()>1244     pub fn SetDirection(&self, value: UsbTransferDirection) -> ::windows::runtime::Result<()> {
1245         let this = self;
1246         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1247     }
ControlTransferType(&self) -> ::windows::runtime::Result<UsbControlTransferType>1248     pub fn ControlTransferType(&self) -> ::windows::runtime::Result<UsbControlTransferType> {
1249         let this = self;
1250         unsafe {
1251             let mut result__: UsbControlTransferType = ::std::mem::zeroed();
1252             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbControlTransferType>(result__)
1253         }
1254     }
SetControlTransferType(&self, value: UsbControlTransferType) -> ::windows::runtime::Result<()>1255     pub fn SetControlTransferType(&self, value: UsbControlTransferType) -> ::windows::runtime::Result<()> {
1256         let this = self;
1257         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
1258     }
Recipient(&self) -> ::windows::runtime::Result<UsbControlRecipient>1259     pub fn Recipient(&self) -> ::windows::runtime::Result<UsbControlRecipient> {
1260         let this = self;
1261         unsafe {
1262             let mut result__: UsbControlRecipient = ::std::mem::zeroed();
1263             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbControlRecipient>(result__)
1264         }
1265     }
SetRecipient(&self, value: UsbControlRecipient) -> ::windows::runtime::Result<()>1266     pub fn SetRecipient(&self, value: UsbControlRecipient) -> ::windows::runtime::Result<()> {
1267         let this = self;
1268         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
1269     }
AsByte(&self) -> ::windows::runtime::Result<u8>1270     pub fn AsByte(&self) -> ::windows::runtime::Result<u8> {
1271         let this = self;
1272         unsafe {
1273             let mut result__: u8 = ::std::mem::zeroed();
1274             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
1275         }
1276     }
SetAsByte(&self, value: u8) -> ::windows::runtime::Result<()>1277     pub fn SetAsByte(&self, value: u8) -> ::windows::runtime::Result<()> {
1278         let this = self;
1279         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value).ok() }
1280     }
1281 }
1282 unsafe impl ::windows::runtime::RuntimeType for UsbControlRequestType {
1283     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbControlRequestType;{8e9465a6-d73d-46de-94be-aae7f07c0f5c})");
1284 }
1285 unsafe impl ::windows::runtime::Interface for UsbControlRequestType {
1286     type Vtable = IUsbControlRequestType_abi;
1287     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2392090022, 55101, 18142, [148, 190, 170, 231, 240, 124, 15, 92]);
1288 }
1289 impl ::windows::runtime::RuntimeName for UsbControlRequestType {
1290     const NAME: &'static str = "Windows.Devices.Usb.UsbControlRequestType";
1291 }
1292 impl ::std::convert::From<UsbControlRequestType> for ::windows::runtime::IUnknown {
from(value: UsbControlRequestType) -> Self1293     fn from(value: UsbControlRequestType) -> Self {
1294         unsafe { ::std::mem::transmute(value) }
1295     }
1296 }
1297 impl ::std::convert::From<&UsbControlRequestType> for ::windows::runtime::IUnknown {
from(value: &UsbControlRequestType) -> Self1298     fn from(value: &UsbControlRequestType) -> Self {
1299         ::std::convert::From::from(::std::clone::Clone::clone(value))
1300     }
1301 }
1302 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbControlRequestType {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1303     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1304         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1305     }
1306 }
1307 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbControlRequestType {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1308     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1309         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1310     }
1311 }
1312 impl ::std::convert::From<UsbControlRequestType> for ::windows::runtime::IInspectable {
from(value: UsbControlRequestType) -> Self1313     fn from(value: UsbControlRequestType) -> Self {
1314         value.0
1315     }
1316 }
1317 impl ::std::convert::From<&UsbControlRequestType> for ::windows::runtime::IInspectable {
from(value: &UsbControlRequestType) -> Self1318     fn from(value: &UsbControlRequestType) -> Self {
1319         value.0.clone()
1320     }
1321 }
1322 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbControlRequestType {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1323     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1324         ::windows::runtime::Param::Owned(self.0)
1325     }
1326 }
1327 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbControlRequestType {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1328     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1329         ::windows::runtime::Param::Borrowed(&self.0)
1330     }
1331 }
1332 unsafe impl ::std::marker::Send for UsbControlRequestType {}
1333 unsafe impl ::std::marker::Sync for UsbControlRequestType {}
1334 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1335 #[repr(transparent)]
1336 pub struct UsbControlTransferType(pub i32);
1337 impl UsbControlTransferType {
1338     pub const Standard: UsbControlTransferType = UsbControlTransferType(0i32);
1339     pub const Class: UsbControlTransferType = UsbControlTransferType(1i32);
1340     pub const Vendor: UsbControlTransferType = UsbControlTransferType(2i32);
1341 }
1342 impl ::std::convert::From<i32> for UsbControlTransferType {
from(value: i32) -> Self1343     fn from(value: i32) -> Self {
1344         Self(value)
1345     }
1346 }
1347 unsafe impl ::windows::runtime::Abi for UsbControlTransferType {
1348     type Abi = Self;
1349     type DefaultType = Self;
1350 }
1351 unsafe impl ::windows::runtime::RuntimeType for UsbControlTransferType {
1352     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Usb.UsbControlTransferType;i4)");
1353 }
1354 #[repr(transparent)]
1355 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1356 pub struct UsbDescriptor(::windows::runtime::IInspectable);
1357 impl UsbDescriptor {
Length(&self) -> ::windows::runtime::Result<u8>1358     pub fn Length(&self) -> ::windows::runtime::Result<u8> {
1359         let this = self;
1360         unsafe {
1361             let mut result__: u8 = ::std::mem::zeroed();
1362             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
1363         }
1364     }
DescriptorType(&self) -> ::windows::runtime::Result<u8>1365     pub fn DescriptorType(&self) -> ::windows::runtime::Result<u8> {
1366         let this = self;
1367         unsafe {
1368             let mut result__: u8 = ::std::mem::zeroed();
1369             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
1370         }
1371     }
1372     #[cfg(feature = "Storage_Streams")]
ReadDescriptorBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<()>1373     pub fn ReadDescriptorBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<()> {
1374         let this = self;
1375         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), buffer.into_param().abi()).ok() }
1376     }
1377 }
1378 unsafe impl ::windows::runtime::RuntimeType for UsbDescriptor {
1379     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbDescriptor;{0a89f216-5f9d-4874-8904-da9ad3f5528f})");
1380 }
1381 unsafe impl ::windows::runtime::Interface for UsbDescriptor {
1382     type Vtable = IUsbDescriptor_abi;
1383     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(176812566, 24477, 18548, [137, 4, 218, 154, 211, 245, 82, 143]);
1384 }
1385 impl ::windows::runtime::RuntimeName for UsbDescriptor {
1386     const NAME: &'static str = "Windows.Devices.Usb.UsbDescriptor";
1387 }
1388 impl ::std::convert::From<UsbDescriptor> for ::windows::runtime::IUnknown {
from(value: UsbDescriptor) -> Self1389     fn from(value: UsbDescriptor) -> Self {
1390         unsafe { ::std::mem::transmute(value) }
1391     }
1392 }
1393 impl ::std::convert::From<&UsbDescriptor> for ::windows::runtime::IUnknown {
from(value: &UsbDescriptor) -> Self1394     fn from(value: &UsbDescriptor) -> Self {
1395         ::std::convert::From::from(::std::clone::Clone::clone(value))
1396     }
1397 }
1398 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1399     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1400         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1401     }
1402 }
1403 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1404     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1405         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1406     }
1407 }
1408 impl ::std::convert::From<UsbDescriptor> for ::windows::runtime::IInspectable {
from(value: UsbDescriptor) -> Self1409     fn from(value: UsbDescriptor) -> Self {
1410         value.0
1411     }
1412 }
1413 impl ::std::convert::From<&UsbDescriptor> for ::windows::runtime::IInspectable {
from(value: &UsbDescriptor) -> Self1414     fn from(value: &UsbDescriptor) -> Self {
1415         value.0.clone()
1416     }
1417 }
1418 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1419     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1420         ::windows::runtime::Param::Owned(self.0)
1421     }
1422 }
1423 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1424     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1425         ::windows::runtime::Param::Borrowed(&self.0)
1426     }
1427 }
1428 unsafe impl ::std::marker::Send for UsbDescriptor {}
1429 unsafe impl ::std::marker::Sync for UsbDescriptor {}
1430 #[repr(transparent)]
1431 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1432 pub struct UsbDevice(::windows::runtime::IInspectable);
1433 impl UsbDevice {
1434     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
SendControlOutTransferAsync<'a, Param0: ::windows::runtime::IntoParam<'a, UsbSetupPacket>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, setuppacket: Param0, buffer: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<u32>>1435     pub fn SendControlOutTransferAsync<'a, Param0: ::windows::runtime::IntoParam<'a, UsbSetupPacket>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, setuppacket: Param0, buffer: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<u32>> {
1436         let this = self;
1437         unsafe {
1438             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1439             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), setuppacket.into_param().abi(), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<u32>>(result__)
1440         }
1441     }
1442     #[cfg(feature = "Foundation")]
SendControlOutTransferAsyncNoBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, UsbSetupPacket>>(&self, setuppacket: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<u32>>1443     pub fn SendControlOutTransferAsyncNoBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, UsbSetupPacket>>(&self, setuppacket: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<u32>> {
1444         let this = self;
1445         unsafe {
1446             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1447             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), setuppacket.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<u32>>(result__)
1448         }
1449     }
1450     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
SendControlInTransferAsync<'a, Param0: ::windows::runtime::IntoParam<'a, UsbSetupPacket>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, setuppacket: Param0, buffer: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Storage::Streams::IBuffer>>1451     pub fn SendControlInTransferAsync<'a, Param0: ::windows::runtime::IntoParam<'a, UsbSetupPacket>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(&self, setuppacket: Param0, buffer: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Storage::Streams::IBuffer>> {
1452         let this = self;
1453         unsafe {
1454             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1455             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), setuppacket.into_param().abi(), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Storage::Streams::IBuffer>>(result__)
1456         }
1457     }
1458     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
SendControlInTransferAsyncNoBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, UsbSetupPacket>>(&self, setuppacket: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Storage::Streams::IBuffer>>1459     pub fn SendControlInTransferAsyncNoBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, UsbSetupPacket>>(&self, setuppacket: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Storage::Streams::IBuffer>> {
1460         let this = self;
1461         unsafe {
1462             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1463             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), setuppacket.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Storage::Streams::IBuffer>>(result__)
1464         }
1465     }
DefaultInterface(&self) -> ::windows::runtime::Result<UsbInterface>1466     pub fn DefaultInterface(&self) -> ::windows::runtime::Result<UsbInterface> {
1467         let this = self;
1468         unsafe {
1469             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1470             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbInterface>(result__)
1471         }
1472     }
DeviceDescriptor(&self) -> ::windows::runtime::Result<UsbDeviceDescriptor>1473     pub fn DeviceDescriptor(&self) -> ::windows::runtime::Result<UsbDeviceDescriptor> {
1474         let this = self;
1475         unsafe {
1476             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1477             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceDescriptor>(result__)
1478         }
1479     }
Configuration(&self) -> ::windows::runtime::Result<UsbConfiguration>1480     pub fn Configuration(&self) -> ::windows::runtime::Result<UsbConfiguration> {
1481         let this = self;
1482         unsafe {
1483             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1484             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbConfiguration>(result__)
1485         }
1486     }
1487     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>1488     pub fn Close(&self) -> ::windows::runtime::Result<()> {
1489         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
1490         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
1491     }
GetDeviceSelector<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(vendorid: u32, productid: u32, winusbinterfaceclass: Param2) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1492     pub fn GetDeviceSelector<'a, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(vendorid: u32, productid: u32, winusbinterfaceclass: Param2) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1493         Self::IUsbDeviceStatics(|this| unsafe {
1494             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1495             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), vendorid, productid, winusbinterfaceclass.into_param().abi(), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1496         })
1497     }
GetDeviceSelectorGuidOnly<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(winusbinterfaceclass: Param0) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1498     pub fn GetDeviceSelectorGuidOnly<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(winusbinterfaceclass: Param0) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1499         Self::IUsbDeviceStatics(|this| unsafe {
1500             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1501             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), winusbinterfaceclass.into_param().abi(), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1502         })
1503     }
GetDeviceSelectorVidPidOnly(vendorid: u32, productid: u32) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1504     pub fn GetDeviceSelectorVidPidOnly(vendorid: u32, productid: u32) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1505         Self::IUsbDeviceStatics(|this| unsafe {
1506             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1507             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), vendorid, productid, &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1508         })
1509     }
GetDeviceClassSelector<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDeviceClass>>(usbclass: Param0) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1510     pub fn GetDeviceClassSelector<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDeviceClass>>(usbclass: Param0) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1511         Self::IUsbDeviceStatics(|this| unsafe {
1512             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1513             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), usbclass.into_param().abi(), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1514         })
1515     }
1516     #[cfg(feature = "Foundation")]
FromIdAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UsbDevice>>1517     pub fn FromIdAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(deviceid: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UsbDevice>> {
1518         Self::IUsbDeviceStatics(|this| unsafe {
1519             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1520             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), deviceid.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<UsbDevice>>(result__)
1521         })
1522     }
IUsbDeviceStatics<R, F: FnOnce(&IUsbDeviceStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1523     pub fn IUsbDeviceStatics<R, F: FnOnce(&IUsbDeviceStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1524         static mut SHARED: ::windows::runtime::FactoryCache<UsbDevice, IUsbDeviceStatics> = ::windows::runtime::FactoryCache::new();
1525         unsafe { SHARED.call(callback) }
1526     }
1527 }
1528 unsafe impl ::windows::runtime::RuntimeType for UsbDevice {
1529     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbDevice;{5249b992-c456-44d5-ad5e-24f5a089f63b})");
1530 }
1531 unsafe impl ::windows::runtime::Interface for UsbDevice {
1532     type Vtable = IUsbDevice_abi;
1533     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1380563346, 50262, 17621, [173, 94, 36, 245, 160, 137, 246, 59]);
1534 }
1535 impl ::windows::runtime::RuntimeName for UsbDevice {
1536     const NAME: &'static str = "Windows.Devices.Usb.UsbDevice";
1537 }
1538 impl ::std::convert::From<UsbDevice> for ::windows::runtime::IUnknown {
from(value: UsbDevice) -> Self1539     fn from(value: UsbDevice) -> Self {
1540         unsafe { ::std::mem::transmute(value) }
1541     }
1542 }
1543 impl ::std::convert::From<&UsbDevice> for ::windows::runtime::IUnknown {
from(value: &UsbDevice) -> Self1544     fn from(value: &UsbDevice) -> Self {
1545         ::std::convert::From::from(::std::clone::Clone::clone(value))
1546     }
1547 }
1548 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1549     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1550         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1551     }
1552 }
1553 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1554     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1555         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1556     }
1557 }
1558 impl ::std::convert::From<UsbDevice> for ::windows::runtime::IInspectable {
from(value: UsbDevice) -> Self1559     fn from(value: UsbDevice) -> Self {
1560         value.0
1561     }
1562 }
1563 impl ::std::convert::From<&UsbDevice> for ::windows::runtime::IInspectable {
from(value: &UsbDevice) -> Self1564     fn from(value: &UsbDevice) -> Self {
1565         value.0.clone()
1566     }
1567 }
1568 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1569     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1570         ::windows::runtime::Param::Owned(self.0)
1571     }
1572 }
1573 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbDevice {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1574     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1575         ::windows::runtime::Param::Borrowed(&self.0)
1576     }
1577 }
1578 #[cfg(feature = "Foundation")]
1579 impl ::std::convert::TryFrom<UsbDevice> for super::super::Foundation::IClosable {
1580     type Error = ::windows::runtime::Error;
try_from(value: UsbDevice) -> ::windows::runtime::Result<Self>1581     fn try_from(value: UsbDevice) -> ::windows::runtime::Result<Self> {
1582         ::std::convert::TryFrom::try_from(&value)
1583     }
1584 }
1585 #[cfg(feature = "Foundation")]
1586 impl ::std::convert::TryFrom<&UsbDevice> for super::super::Foundation::IClosable {
1587     type Error = ::windows::runtime::Error;
try_from(value: &UsbDevice) -> ::windows::runtime::Result<Self>1588     fn try_from(value: &UsbDevice) -> ::windows::runtime::Result<Self> {
1589         ::windows::runtime::Interface::cast(value)
1590     }
1591 }
1592 #[cfg(feature = "Foundation")]
1593 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for UsbDevice {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1594     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1595         ::windows::runtime::IntoParam::into_param(&self)
1596     }
1597 }
1598 #[cfg(feature = "Foundation")]
1599 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &UsbDevice {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1600     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1601         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1602     }
1603 }
1604 unsafe impl ::std::marker::Send for UsbDevice {}
1605 unsafe impl ::std::marker::Sync for UsbDevice {}
1606 #[repr(transparent)]
1607 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1608 pub struct UsbDeviceClass(::windows::runtime::IInspectable);
1609 impl UsbDeviceClass {
new() -> ::windows::runtime::Result<Self>1610     pub fn new() -> ::windows::runtime::Result<Self> {
1611         Self::IActivationFactory(|f| f.activate_instance::<Self>())
1612     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1613     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1614         static mut SHARED: ::windows::runtime::FactoryCache<UsbDeviceClass, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
1615         unsafe { SHARED.call(callback) }
1616     }
ClassCode(&self) -> ::windows::runtime::Result<u8>1617     pub fn ClassCode(&self) -> ::windows::runtime::Result<u8> {
1618         let this = self;
1619         unsafe {
1620             let mut result__: u8 = ::std::mem::zeroed();
1621             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
1622         }
1623     }
SetClassCode(&self, value: u8) -> ::windows::runtime::Result<()>1624     pub fn SetClassCode(&self, value: u8) -> ::windows::runtime::Result<()> {
1625         let this = self;
1626         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1627     }
1628     #[cfg(feature = "Foundation")]
SubclassCode(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u8>>1629     pub fn SubclassCode(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u8>> {
1630         let this = self;
1631         unsafe {
1632             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1633             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u8>>(result__)
1634         }
1635     }
1636     #[cfg(feature = "Foundation")]
SetSubclassCode<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u8>>>(&self, value: Param0) -> ::windows::runtime::Result<()>1637     pub fn SetSubclassCode<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u8>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1638         let this = self;
1639         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1640     }
1641     #[cfg(feature = "Foundation")]
ProtocolCode(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u8>>1642     pub fn ProtocolCode(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u8>> {
1643         let this = self;
1644         unsafe {
1645             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1646             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u8>>(result__)
1647         }
1648     }
1649     #[cfg(feature = "Foundation")]
SetProtocolCode<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u8>>>(&self, value: Param0) -> ::windows::runtime::Result<()>1650     pub fn SetProtocolCode<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u8>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1651         let this = self;
1652         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1653     }
1654 }
1655 unsafe impl ::windows::runtime::RuntimeType for UsbDeviceClass {
1656     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbDeviceClass;{051942f9-845e-47eb-b12a-38f2f617afe7})");
1657 }
1658 unsafe impl ::windows::runtime::Interface for UsbDeviceClass {
1659     type Vtable = IUsbDeviceClass_abi;
1660     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(85541625, 33886, 18411, [177, 42, 56, 242, 246, 23, 175, 231]);
1661 }
1662 impl ::windows::runtime::RuntimeName for UsbDeviceClass {
1663     const NAME: &'static str = "Windows.Devices.Usb.UsbDeviceClass";
1664 }
1665 impl ::std::convert::From<UsbDeviceClass> for ::windows::runtime::IUnknown {
from(value: UsbDeviceClass) -> Self1666     fn from(value: UsbDeviceClass) -> Self {
1667         unsafe { ::std::mem::transmute(value) }
1668     }
1669 }
1670 impl ::std::convert::From<&UsbDeviceClass> for ::windows::runtime::IUnknown {
from(value: &UsbDeviceClass) -> Self1671     fn from(value: &UsbDeviceClass) -> Self {
1672         ::std::convert::From::from(::std::clone::Clone::clone(value))
1673     }
1674 }
1675 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbDeviceClass {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1676     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1677         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1678     }
1679 }
1680 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbDeviceClass {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1681     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1682         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1683     }
1684 }
1685 impl ::std::convert::From<UsbDeviceClass> for ::windows::runtime::IInspectable {
from(value: UsbDeviceClass) -> Self1686     fn from(value: UsbDeviceClass) -> Self {
1687         value.0
1688     }
1689 }
1690 impl ::std::convert::From<&UsbDeviceClass> for ::windows::runtime::IInspectable {
from(value: &UsbDeviceClass) -> Self1691     fn from(value: &UsbDeviceClass) -> Self {
1692         value.0.clone()
1693     }
1694 }
1695 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbDeviceClass {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1696     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1697         ::windows::runtime::Param::Owned(self.0)
1698     }
1699 }
1700 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbDeviceClass {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1701     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1702         ::windows::runtime::Param::Borrowed(&self.0)
1703     }
1704 }
1705 unsafe impl ::std::marker::Send for UsbDeviceClass {}
1706 unsafe impl ::std::marker::Sync for UsbDeviceClass {}
1707 #[repr(transparent)]
1708 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1709 pub struct UsbDeviceClasses(::windows::runtime::IInspectable);
1710 impl UsbDeviceClasses {
CdcControl() -> ::windows::runtime::Result<UsbDeviceClass>1711     pub fn CdcControl() -> ::windows::runtime::Result<UsbDeviceClass> {
1712         Self::IUsbDeviceClassesStatics(|this| unsafe {
1713             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1714             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceClass>(result__)
1715         })
1716     }
Physical() -> ::windows::runtime::Result<UsbDeviceClass>1717     pub fn Physical() -> ::windows::runtime::Result<UsbDeviceClass> {
1718         Self::IUsbDeviceClassesStatics(|this| unsafe {
1719             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1720             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceClass>(result__)
1721         })
1722     }
PersonalHealthcare() -> ::windows::runtime::Result<UsbDeviceClass>1723     pub fn PersonalHealthcare() -> ::windows::runtime::Result<UsbDeviceClass> {
1724         Self::IUsbDeviceClassesStatics(|this| unsafe {
1725             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1726             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceClass>(result__)
1727         })
1728     }
ActiveSync() -> ::windows::runtime::Result<UsbDeviceClass>1729     pub fn ActiveSync() -> ::windows::runtime::Result<UsbDeviceClass> {
1730         Self::IUsbDeviceClassesStatics(|this| unsafe {
1731             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1732             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceClass>(result__)
1733         })
1734     }
PalmSync() -> ::windows::runtime::Result<UsbDeviceClass>1735     pub fn PalmSync() -> ::windows::runtime::Result<UsbDeviceClass> {
1736         Self::IUsbDeviceClassesStatics(|this| unsafe {
1737             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1738             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceClass>(result__)
1739         })
1740     }
DeviceFirmwareUpdate() -> ::windows::runtime::Result<UsbDeviceClass>1741     pub fn DeviceFirmwareUpdate() -> ::windows::runtime::Result<UsbDeviceClass> {
1742         Self::IUsbDeviceClassesStatics(|this| unsafe {
1743             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1744             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceClass>(result__)
1745         })
1746     }
Irda() -> ::windows::runtime::Result<UsbDeviceClass>1747     pub fn Irda() -> ::windows::runtime::Result<UsbDeviceClass> {
1748         Self::IUsbDeviceClassesStatics(|this| unsafe {
1749             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1750             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceClass>(result__)
1751         })
1752     }
Measurement() -> ::windows::runtime::Result<UsbDeviceClass>1753     pub fn Measurement() -> ::windows::runtime::Result<UsbDeviceClass> {
1754         Self::IUsbDeviceClassesStatics(|this| unsafe {
1755             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1756             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceClass>(result__)
1757         })
1758     }
VendorSpecific() -> ::windows::runtime::Result<UsbDeviceClass>1759     pub fn VendorSpecific() -> ::windows::runtime::Result<UsbDeviceClass> {
1760         Self::IUsbDeviceClassesStatics(|this| unsafe {
1761             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1762             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbDeviceClass>(result__)
1763         })
1764     }
IUsbDeviceClassesStatics<R, F: FnOnce(&IUsbDeviceClassesStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1765     pub fn IUsbDeviceClassesStatics<R, F: FnOnce(&IUsbDeviceClassesStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1766         static mut SHARED: ::windows::runtime::FactoryCache<UsbDeviceClasses, IUsbDeviceClassesStatics> = ::windows::runtime::FactoryCache::new();
1767         unsafe { SHARED.call(callback) }
1768     }
1769 }
1770 unsafe impl ::windows::runtime::RuntimeType for UsbDeviceClasses {
1771     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbDeviceClasses;{686f955d-9b92-4b30-9781-c22c55ac35cb})");
1772 }
1773 unsafe impl ::windows::runtime::Interface for UsbDeviceClasses {
1774     type Vtable = IUsbDeviceClasses_abi;
1775     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1752143197, 39826, 19248, [151, 129, 194, 44, 85, 172, 53, 203]);
1776 }
1777 impl ::windows::runtime::RuntimeName for UsbDeviceClasses {
1778     const NAME: &'static str = "Windows.Devices.Usb.UsbDeviceClasses";
1779 }
1780 impl ::std::convert::From<UsbDeviceClasses> for ::windows::runtime::IUnknown {
from(value: UsbDeviceClasses) -> Self1781     fn from(value: UsbDeviceClasses) -> Self {
1782         unsafe { ::std::mem::transmute(value) }
1783     }
1784 }
1785 impl ::std::convert::From<&UsbDeviceClasses> for ::windows::runtime::IUnknown {
from(value: &UsbDeviceClasses) -> Self1786     fn from(value: &UsbDeviceClasses) -> Self {
1787         ::std::convert::From::from(::std::clone::Clone::clone(value))
1788     }
1789 }
1790 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbDeviceClasses {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1791     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1792         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1793     }
1794 }
1795 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbDeviceClasses {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1796     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1797         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1798     }
1799 }
1800 impl ::std::convert::From<UsbDeviceClasses> for ::windows::runtime::IInspectable {
from(value: UsbDeviceClasses) -> Self1801     fn from(value: UsbDeviceClasses) -> Self {
1802         value.0
1803     }
1804 }
1805 impl ::std::convert::From<&UsbDeviceClasses> for ::windows::runtime::IInspectable {
from(value: &UsbDeviceClasses) -> Self1806     fn from(value: &UsbDeviceClasses) -> Self {
1807         value.0.clone()
1808     }
1809 }
1810 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbDeviceClasses {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1811     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1812         ::windows::runtime::Param::Owned(self.0)
1813     }
1814 }
1815 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbDeviceClasses {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1816     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1817         ::windows::runtime::Param::Borrowed(&self.0)
1818     }
1819 }
1820 unsafe impl ::std::marker::Send for UsbDeviceClasses {}
1821 unsafe impl ::std::marker::Sync for UsbDeviceClasses {}
1822 #[repr(transparent)]
1823 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1824 pub struct UsbDeviceDescriptor(::windows::runtime::IInspectable);
1825 impl UsbDeviceDescriptor {
BcdUsb(&self) -> ::windows::runtime::Result<u32>1826     pub fn BcdUsb(&self) -> ::windows::runtime::Result<u32> {
1827         let this = self;
1828         unsafe {
1829             let mut result__: u32 = ::std::mem::zeroed();
1830             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1831         }
1832     }
MaxPacketSize0(&self) -> ::windows::runtime::Result<u8>1833     pub fn MaxPacketSize0(&self) -> ::windows::runtime::Result<u8> {
1834         let this = self;
1835         unsafe {
1836             let mut result__: u8 = ::std::mem::zeroed();
1837             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
1838         }
1839     }
VendorId(&self) -> ::windows::runtime::Result<u32>1840     pub fn VendorId(&self) -> ::windows::runtime::Result<u32> {
1841         let this = self;
1842         unsafe {
1843             let mut result__: u32 = ::std::mem::zeroed();
1844             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1845         }
1846     }
ProductId(&self) -> ::windows::runtime::Result<u32>1847     pub fn ProductId(&self) -> ::windows::runtime::Result<u32> {
1848         let this = self;
1849         unsafe {
1850             let mut result__: u32 = ::std::mem::zeroed();
1851             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1852         }
1853     }
BcdDeviceRevision(&self) -> ::windows::runtime::Result<u32>1854     pub fn BcdDeviceRevision(&self) -> ::windows::runtime::Result<u32> {
1855         let this = self;
1856         unsafe {
1857             let mut result__: u32 = ::std::mem::zeroed();
1858             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1859         }
1860     }
NumberOfConfigurations(&self) -> ::windows::runtime::Result<u8>1861     pub fn NumberOfConfigurations(&self) -> ::windows::runtime::Result<u8> {
1862         let this = self;
1863         unsafe {
1864             let mut result__: u8 = ::std::mem::zeroed();
1865             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
1866         }
1867     }
1868 }
1869 unsafe impl ::windows::runtime::RuntimeType for UsbDeviceDescriptor {
1870     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbDeviceDescriptor;{1f48d1f6-ba97-4322-b92c-b5b189216588})");
1871 }
1872 unsafe impl ::windows::runtime::Interface for UsbDeviceDescriptor {
1873     type Vtable = IUsbDeviceDescriptor_abi;
1874     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(524866038, 47767, 17186, [185, 44, 181, 177, 137, 33, 101, 136]);
1875 }
1876 impl ::windows::runtime::RuntimeName for UsbDeviceDescriptor {
1877     const NAME: &'static str = "Windows.Devices.Usb.UsbDeviceDescriptor";
1878 }
1879 impl ::std::convert::From<UsbDeviceDescriptor> for ::windows::runtime::IUnknown {
from(value: UsbDeviceDescriptor) -> Self1880     fn from(value: UsbDeviceDescriptor) -> Self {
1881         unsafe { ::std::mem::transmute(value) }
1882     }
1883 }
1884 impl ::std::convert::From<&UsbDeviceDescriptor> for ::windows::runtime::IUnknown {
from(value: &UsbDeviceDescriptor) -> Self1885     fn from(value: &UsbDeviceDescriptor) -> Self {
1886         ::std::convert::From::from(::std::clone::Clone::clone(value))
1887     }
1888 }
1889 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbDeviceDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1890     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1891         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1892     }
1893 }
1894 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbDeviceDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1895     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1896         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1897     }
1898 }
1899 impl ::std::convert::From<UsbDeviceDescriptor> for ::windows::runtime::IInspectable {
from(value: UsbDeviceDescriptor) -> Self1900     fn from(value: UsbDeviceDescriptor) -> Self {
1901         value.0
1902     }
1903 }
1904 impl ::std::convert::From<&UsbDeviceDescriptor> for ::windows::runtime::IInspectable {
from(value: &UsbDeviceDescriptor) -> Self1905     fn from(value: &UsbDeviceDescriptor) -> Self {
1906         value.0.clone()
1907     }
1908 }
1909 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbDeviceDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1910     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1911         ::windows::runtime::Param::Owned(self.0)
1912     }
1913 }
1914 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbDeviceDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1915     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1916         ::windows::runtime::Param::Borrowed(&self.0)
1917     }
1918 }
1919 unsafe impl ::std::marker::Send for UsbDeviceDescriptor {}
1920 unsafe impl ::std::marker::Sync for UsbDeviceDescriptor {}
1921 #[repr(transparent)]
1922 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1923 pub struct UsbEndpointDescriptor(::windows::runtime::IInspectable);
1924 impl UsbEndpointDescriptor {
EndpointNumber(&self) -> ::windows::runtime::Result<u8>1925     pub fn EndpointNumber(&self) -> ::windows::runtime::Result<u8> {
1926         let this = self;
1927         unsafe {
1928             let mut result__: u8 = ::std::mem::zeroed();
1929             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
1930         }
1931     }
Direction(&self) -> ::windows::runtime::Result<UsbTransferDirection>1932     pub fn Direction(&self) -> ::windows::runtime::Result<UsbTransferDirection> {
1933         let this = self;
1934         unsafe {
1935             let mut result__: UsbTransferDirection = ::std::mem::zeroed();
1936             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbTransferDirection>(result__)
1937         }
1938     }
EndpointType(&self) -> ::windows::runtime::Result<UsbEndpointType>1939     pub fn EndpointType(&self) -> ::windows::runtime::Result<UsbEndpointType> {
1940         let this = self;
1941         unsafe {
1942             let mut result__: UsbEndpointType = ::std::mem::zeroed();
1943             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbEndpointType>(result__)
1944         }
1945     }
AsBulkInEndpointDescriptor(&self) -> ::windows::runtime::Result<UsbBulkInEndpointDescriptor>1946     pub fn AsBulkInEndpointDescriptor(&self) -> ::windows::runtime::Result<UsbBulkInEndpointDescriptor> {
1947         let this = self;
1948         unsafe {
1949             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1950             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbBulkInEndpointDescriptor>(result__)
1951         }
1952     }
AsInterruptInEndpointDescriptor(&self) -> ::windows::runtime::Result<UsbInterruptInEndpointDescriptor>1953     pub fn AsInterruptInEndpointDescriptor(&self) -> ::windows::runtime::Result<UsbInterruptInEndpointDescriptor> {
1954         let this = self;
1955         unsafe {
1956             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1957             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbInterruptInEndpointDescriptor>(result__)
1958         }
1959     }
AsBulkOutEndpointDescriptor(&self) -> ::windows::runtime::Result<UsbBulkOutEndpointDescriptor>1960     pub fn AsBulkOutEndpointDescriptor(&self) -> ::windows::runtime::Result<UsbBulkOutEndpointDescriptor> {
1961         let this = self;
1962         unsafe {
1963             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1964             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbBulkOutEndpointDescriptor>(result__)
1965         }
1966     }
AsInterruptOutEndpointDescriptor(&self) -> ::windows::runtime::Result<UsbInterruptOutEndpointDescriptor>1967     pub fn AsInterruptOutEndpointDescriptor(&self) -> ::windows::runtime::Result<UsbInterruptOutEndpointDescriptor> {
1968         let this = self;
1969         unsafe {
1970             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1971             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbInterruptOutEndpointDescriptor>(result__)
1972         }
1973     }
TryParse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0, parsed: &mut ::std::option::Option<UsbEndpointDescriptor>) -> ::windows::runtime::Result<bool>1974     pub fn TryParse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0, parsed: &mut ::std::option::Option<UsbEndpointDescriptor>) -> ::windows::runtime::Result<bool> {
1975         Self::IUsbEndpointDescriptorStatics(|this| unsafe {
1976             let mut result__: bool = ::std::mem::zeroed();
1977             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), descriptor.into_param().abi(), parsed as *mut _ as _, &mut result__).from_abi::<bool>(result__)
1978         })
1979     }
Parse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0) -> ::windows::runtime::Result<UsbEndpointDescriptor>1980     pub fn Parse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0) -> ::windows::runtime::Result<UsbEndpointDescriptor> {
1981         Self::IUsbEndpointDescriptorStatics(|this| unsafe {
1982             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1983             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), descriptor.into_param().abi(), &mut result__).from_abi::<UsbEndpointDescriptor>(result__)
1984         })
1985     }
IUsbEndpointDescriptorStatics<R, F: FnOnce(&IUsbEndpointDescriptorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1986     pub fn IUsbEndpointDescriptorStatics<R, F: FnOnce(&IUsbEndpointDescriptorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1987         static mut SHARED: ::windows::runtime::FactoryCache<UsbEndpointDescriptor, IUsbEndpointDescriptorStatics> = ::windows::runtime::FactoryCache::new();
1988         unsafe { SHARED.call(callback) }
1989     }
1990 }
1991 unsafe impl ::windows::runtime::RuntimeType for UsbEndpointDescriptor {
1992     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbEndpointDescriptor;{6b4862d9-8df7-4b40-ac83-578f139f0575})");
1993 }
1994 unsafe impl ::windows::runtime::Interface for UsbEndpointDescriptor {
1995     type Vtable = IUsbEndpointDescriptor_abi;
1996     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1799906009, 36343, 19264, [172, 131, 87, 143, 19, 159, 5, 117]);
1997 }
1998 impl ::windows::runtime::RuntimeName for UsbEndpointDescriptor {
1999     const NAME: &'static str = "Windows.Devices.Usb.UsbEndpointDescriptor";
2000 }
2001 impl ::std::convert::From<UsbEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: UsbEndpointDescriptor) -> Self2002     fn from(value: UsbEndpointDescriptor) -> Self {
2003         unsafe { ::std::mem::transmute(value) }
2004     }
2005 }
2006 impl ::std::convert::From<&UsbEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: &UsbEndpointDescriptor) -> Self2007     fn from(value: &UsbEndpointDescriptor) -> Self {
2008         ::std::convert::From::from(::std::clone::Clone::clone(value))
2009     }
2010 }
2011 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2012     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2013         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2014     }
2015 }
2016 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2017     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2018         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2019     }
2020 }
2021 impl ::std::convert::From<UsbEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: UsbEndpointDescriptor) -> Self2022     fn from(value: UsbEndpointDescriptor) -> Self {
2023         value.0
2024     }
2025 }
2026 impl ::std::convert::From<&UsbEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: &UsbEndpointDescriptor) -> Self2027     fn from(value: &UsbEndpointDescriptor) -> Self {
2028         value.0.clone()
2029     }
2030 }
2031 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2032     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2033         ::windows::runtime::Param::Owned(self.0)
2034     }
2035 }
2036 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2037     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2038         ::windows::runtime::Param::Borrowed(&self.0)
2039     }
2040 }
2041 unsafe impl ::std::marker::Send for UsbEndpointDescriptor {}
2042 unsafe impl ::std::marker::Sync for UsbEndpointDescriptor {}
2043 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2044 #[repr(transparent)]
2045 pub struct UsbEndpointType(pub i32);
2046 impl UsbEndpointType {
2047     pub const Control: UsbEndpointType = UsbEndpointType(0i32);
2048     pub const Isochronous: UsbEndpointType = UsbEndpointType(1i32);
2049     pub const Bulk: UsbEndpointType = UsbEndpointType(2i32);
2050     pub const Interrupt: UsbEndpointType = UsbEndpointType(3i32);
2051 }
2052 impl ::std::convert::From<i32> for UsbEndpointType {
from(value: i32) -> Self2053     fn from(value: i32) -> Self {
2054         Self(value)
2055     }
2056 }
2057 unsafe impl ::windows::runtime::Abi for UsbEndpointType {
2058     type Abi = Self;
2059     type DefaultType = Self;
2060 }
2061 unsafe impl ::windows::runtime::RuntimeType for UsbEndpointType {
2062     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Usb.UsbEndpointType;i4)");
2063 }
2064 #[repr(transparent)]
2065 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2066 pub struct UsbInterface(::windows::runtime::IInspectable);
2067 impl UsbInterface {
2068     #[cfg(feature = "Foundation_Collections")]
BulkInPipes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbBulkInPipe>>2069     pub fn BulkInPipes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbBulkInPipe>> {
2070         let this = self;
2071         unsafe {
2072             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2073             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbBulkInPipe>>(result__)
2074         }
2075     }
2076     #[cfg(feature = "Foundation_Collections")]
InterruptInPipes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterruptInPipe>>2077     pub fn InterruptInPipes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterruptInPipe>> {
2078         let this = self;
2079         unsafe {
2080             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2081             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbInterruptInPipe>>(result__)
2082         }
2083     }
2084     #[cfg(feature = "Foundation_Collections")]
BulkOutPipes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbBulkOutPipe>>2085     pub fn BulkOutPipes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbBulkOutPipe>> {
2086         let this = self;
2087         unsafe {
2088             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2089             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbBulkOutPipe>>(result__)
2090         }
2091     }
2092     #[cfg(feature = "Foundation_Collections")]
InterruptOutPipes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterruptOutPipe>>2093     pub fn InterruptOutPipes(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterruptOutPipe>> {
2094         let this = self;
2095         unsafe {
2096             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2097             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbInterruptOutPipe>>(result__)
2098         }
2099     }
2100     #[cfg(feature = "Foundation_Collections")]
InterfaceSettings(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterfaceSetting>>2101     pub fn InterfaceSettings(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterfaceSetting>> {
2102         let this = self;
2103         unsafe {
2104             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2105             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbInterfaceSetting>>(result__)
2106         }
2107     }
InterfaceNumber(&self) -> ::windows::runtime::Result<u8>2108     pub fn InterfaceNumber(&self) -> ::windows::runtime::Result<u8> {
2109         let this = self;
2110         unsafe {
2111             let mut result__: u8 = ::std::mem::zeroed();
2112             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
2113         }
2114     }
2115     #[cfg(feature = "Foundation_Collections")]
Descriptors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbDescriptor>>2116     pub fn Descriptors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbDescriptor>> {
2117         let this = self;
2118         unsafe {
2119             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2120             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbDescriptor>>(result__)
2121         }
2122     }
2123 }
2124 unsafe impl ::windows::runtime::RuntimeType for UsbInterface {
2125     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbInterface;{a0322b95-7f47-48ab-a727-678c25be2112})");
2126 }
2127 unsafe impl ::windows::runtime::Interface for UsbInterface {
2128     type Vtable = IUsbInterface_abi;
2129     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2687642517, 32583, 18603, [167, 39, 103, 140, 37, 190, 33, 18]);
2130 }
2131 impl ::windows::runtime::RuntimeName for UsbInterface {
2132     const NAME: &'static str = "Windows.Devices.Usb.UsbInterface";
2133 }
2134 impl ::std::convert::From<UsbInterface> for ::windows::runtime::IUnknown {
from(value: UsbInterface) -> Self2135     fn from(value: UsbInterface) -> Self {
2136         unsafe { ::std::mem::transmute(value) }
2137     }
2138 }
2139 impl ::std::convert::From<&UsbInterface> for ::windows::runtime::IUnknown {
from(value: &UsbInterface) -> Self2140     fn from(value: &UsbInterface) -> Self {
2141         ::std::convert::From::from(::std::clone::Clone::clone(value))
2142     }
2143 }
2144 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbInterface {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2145     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2146         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2147     }
2148 }
2149 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbInterface {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2150     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2151         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2152     }
2153 }
2154 impl ::std::convert::From<UsbInterface> for ::windows::runtime::IInspectable {
from(value: UsbInterface) -> Self2155     fn from(value: UsbInterface) -> Self {
2156         value.0
2157     }
2158 }
2159 impl ::std::convert::From<&UsbInterface> for ::windows::runtime::IInspectable {
from(value: &UsbInterface) -> Self2160     fn from(value: &UsbInterface) -> Self {
2161         value.0.clone()
2162     }
2163 }
2164 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbInterface {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2165     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2166         ::windows::runtime::Param::Owned(self.0)
2167     }
2168 }
2169 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbInterface {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2170     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2171         ::windows::runtime::Param::Borrowed(&self.0)
2172     }
2173 }
2174 unsafe impl ::std::marker::Send for UsbInterface {}
2175 unsafe impl ::std::marker::Sync for UsbInterface {}
2176 #[repr(transparent)]
2177 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2178 pub struct UsbInterfaceDescriptor(::windows::runtime::IInspectable);
2179 impl UsbInterfaceDescriptor {
ClassCode(&self) -> ::windows::runtime::Result<u8>2180     pub fn ClassCode(&self) -> ::windows::runtime::Result<u8> {
2181         let this = self;
2182         unsafe {
2183             let mut result__: u8 = ::std::mem::zeroed();
2184             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
2185         }
2186     }
SubclassCode(&self) -> ::windows::runtime::Result<u8>2187     pub fn SubclassCode(&self) -> ::windows::runtime::Result<u8> {
2188         let this = self;
2189         unsafe {
2190             let mut result__: u8 = ::std::mem::zeroed();
2191             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
2192         }
2193     }
ProtocolCode(&self) -> ::windows::runtime::Result<u8>2194     pub fn ProtocolCode(&self) -> ::windows::runtime::Result<u8> {
2195         let this = self;
2196         unsafe {
2197             let mut result__: u8 = ::std::mem::zeroed();
2198             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
2199         }
2200     }
AlternateSettingNumber(&self) -> ::windows::runtime::Result<u8>2201     pub fn AlternateSettingNumber(&self) -> ::windows::runtime::Result<u8> {
2202         let this = self;
2203         unsafe {
2204             let mut result__: u8 = ::std::mem::zeroed();
2205             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
2206         }
2207     }
InterfaceNumber(&self) -> ::windows::runtime::Result<u8>2208     pub fn InterfaceNumber(&self) -> ::windows::runtime::Result<u8> {
2209         let this = self;
2210         unsafe {
2211             let mut result__: u8 = ::std::mem::zeroed();
2212             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
2213         }
2214     }
TryParse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0, parsed: &mut ::std::option::Option<UsbInterfaceDescriptor>) -> ::windows::runtime::Result<bool>2215     pub fn TryParse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0, parsed: &mut ::std::option::Option<UsbInterfaceDescriptor>) -> ::windows::runtime::Result<bool> {
2216         Self::IUsbInterfaceDescriptorStatics(|this| unsafe {
2217             let mut result__: bool = ::std::mem::zeroed();
2218             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), descriptor.into_param().abi(), parsed as *mut _ as _, &mut result__).from_abi::<bool>(result__)
2219         })
2220     }
Parse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0) -> ::windows::runtime::Result<UsbInterfaceDescriptor>2221     pub fn Parse<'a, Param0: ::windows::runtime::IntoParam<'a, UsbDescriptor>>(descriptor: Param0) -> ::windows::runtime::Result<UsbInterfaceDescriptor> {
2222         Self::IUsbInterfaceDescriptorStatics(|this| unsafe {
2223             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2224             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), descriptor.into_param().abi(), &mut result__).from_abi::<UsbInterfaceDescriptor>(result__)
2225         })
2226     }
IUsbInterfaceDescriptorStatics<R, F: FnOnce(&IUsbInterfaceDescriptorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2227     pub fn IUsbInterfaceDescriptorStatics<R, F: FnOnce(&IUsbInterfaceDescriptorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2228         static mut SHARED: ::windows::runtime::FactoryCache<UsbInterfaceDescriptor, IUsbInterfaceDescriptorStatics> = ::windows::runtime::FactoryCache::new();
2229         unsafe { SHARED.call(callback) }
2230     }
2231 }
2232 unsafe impl ::windows::runtime::RuntimeType for UsbInterfaceDescriptor {
2233     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbInterfaceDescriptor;{199670c7-b7ee-4f90-8cd5-94a2e257598a})");
2234 }
2235 unsafe impl ::windows::runtime::Interface for UsbInterfaceDescriptor {
2236     type Vtable = IUsbInterfaceDescriptor_abi;
2237     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(429289671, 47086, 20368, [140, 213, 148, 162, 226, 87, 89, 138]);
2238 }
2239 impl ::windows::runtime::RuntimeName for UsbInterfaceDescriptor {
2240     const NAME: &'static str = "Windows.Devices.Usb.UsbInterfaceDescriptor";
2241 }
2242 impl ::std::convert::From<UsbInterfaceDescriptor> for ::windows::runtime::IUnknown {
from(value: UsbInterfaceDescriptor) -> Self2243     fn from(value: UsbInterfaceDescriptor) -> Self {
2244         unsafe { ::std::mem::transmute(value) }
2245     }
2246 }
2247 impl ::std::convert::From<&UsbInterfaceDescriptor> for ::windows::runtime::IUnknown {
from(value: &UsbInterfaceDescriptor) -> Self2248     fn from(value: &UsbInterfaceDescriptor) -> Self {
2249         ::std::convert::From::from(::std::clone::Clone::clone(value))
2250     }
2251 }
2252 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbInterfaceDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2253     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2254         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2255     }
2256 }
2257 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbInterfaceDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2258     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2259         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2260     }
2261 }
2262 impl ::std::convert::From<UsbInterfaceDescriptor> for ::windows::runtime::IInspectable {
from(value: UsbInterfaceDescriptor) -> Self2263     fn from(value: UsbInterfaceDescriptor) -> Self {
2264         value.0
2265     }
2266 }
2267 impl ::std::convert::From<&UsbInterfaceDescriptor> for ::windows::runtime::IInspectable {
from(value: &UsbInterfaceDescriptor) -> Self2268     fn from(value: &UsbInterfaceDescriptor) -> Self {
2269         value.0.clone()
2270     }
2271 }
2272 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbInterfaceDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2273     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2274         ::windows::runtime::Param::Owned(self.0)
2275     }
2276 }
2277 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbInterfaceDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2278     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2279         ::windows::runtime::Param::Borrowed(&self.0)
2280     }
2281 }
2282 unsafe impl ::std::marker::Send for UsbInterfaceDescriptor {}
2283 unsafe impl ::std::marker::Sync for UsbInterfaceDescriptor {}
2284 #[repr(transparent)]
2285 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2286 pub struct UsbInterfaceSetting(::windows::runtime::IInspectable);
2287 impl UsbInterfaceSetting {
2288     #[cfg(feature = "Foundation_Collections")]
BulkInEndpoints(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbBulkInEndpointDescriptor>>2289     pub fn BulkInEndpoints(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbBulkInEndpointDescriptor>> {
2290         let this = self;
2291         unsafe {
2292             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2293             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbBulkInEndpointDescriptor>>(result__)
2294         }
2295     }
2296     #[cfg(feature = "Foundation_Collections")]
InterruptInEndpoints(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterruptInEndpointDescriptor>>2297     pub fn InterruptInEndpoints(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterruptInEndpointDescriptor>> {
2298         let this = self;
2299         unsafe {
2300             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2301             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbInterruptInEndpointDescriptor>>(result__)
2302         }
2303     }
2304     #[cfg(feature = "Foundation_Collections")]
BulkOutEndpoints(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbBulkOutEndpointDescriptor>>2305     pub fn BulkOutEndpoints(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbBulkOutEndpointDescriptor>> {
2306         let this = self;
2307         unsafe {
2308             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2309             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbBulkOutEndpointDescriptor>>(result__)
2310         }
2311     }
2312     #[cfg(feature = "Foundation_Collections")]
InterruptOutEndpoints(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterruptOutEndpointDescriptor>>2313     pub fn InterruptOutEndpoints(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbInterruptOutEndpointDescriptor>> {
2314         let this = self;
2315         unsafe {
2316             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2317             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbInterruptOutEndpointDescriptor>>(result__)
2318         }
2319     }
Selected(&self) -> ::windows::runtime::Result<bool>2320     pub fn Selected(&self) -> ::windows::runtime::Result<bool> {
2321         let this = self;
2322         unsafe {
2323             let mut result__: bool = ::std::mem::zeroed();
2324             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2325         }
2326     }
2327     #[cfg(feature = "Foundation")]
SelectSettingAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2328     pub fn SelectSettingAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2329         let this = self;
2330         unsafe {
2331             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2332             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2333         }
2334     }
InterfaceDescriptor(&self) -> ::windows::runtime::Result<UsbInterfaceDescriptor>2335     pub fn InterfaceDescriptor(&self) -> ::windows::runtime::Result<UsbInterfaceDescriptor> {
2336         let this = self;
2337         unsafe {
2338             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2339             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbInterfaceDescriptor>(result__)
2340         }
2341     }
2342     #[cfg(feature = "Foundation_Collections")]
Descriptors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbDescriptor>>2343     pub fn Descriptors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UsbDescriptor>> {
2344         let this = self;
2345         unsafe {
2346             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2347             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UsbDescriptor>>(result__)
2348         }
2349     }
2350 }
2351 unsafe impl ::windows::runtime::RuntimeType for UsbInterfaceSetting {
2352     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbInterfaceSetting;{1827bba7-8da7-4af7-8f4c-7f3032e781f5})");
2353 }
2354 unsafe impl ::windows::runtime::Interface for UsbInterfaceSetting {
2355     type Vtable = IUsbInterfaceSetting_abi;
2356     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(405257127, 36263, 19191, [143, 76, 127, 48, 50, 231, 129, 245]);
2357 }
2358 impl ::windows::runtime::RuntimeName for UsbInterfaceSetting {
2359     const NAME: &'static str = "Windows.Devices.Usb.UsbInterfaceSetting";
2360 }
2361 impl ::std::convert::From<UsbInterfaceSetting> for ::windows::runtime::IUnknown {
from(value: UsbInterfaceSetting) -> Self2362     fn from(value: UsbInterfaceSetting) -> Self {
2363         unsafe { ::std::mem::transmute(value) }
2364     }
2365 }
2366 impl ::std::convert::From<&UsbInterfaceSetting> for ::windows::runtime::IUnknown {
from(value: &UsbInterfaceSetting) -> Self2367     fn from(value: &UsbInterfaceSetting) -> Self {
2368         ::std::convert::From::from(::std::clone::Clone::clone(value))
2369     }
2370 }
2371 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbInterfaceSetting {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2372     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2373         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2374     }
2375 }
2376 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbInterfaceSetting {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2377     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2378         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2379     }
2380 }
2381 impl ::std::convert::From<UsbInterfaceSetting> for ::windows::runtime::IInspectable {
from(value: UsbInterfaceSetting) -> Self2382     fn from(value: UsbInterfaceSetting) -> Self {
2383         value.0
2384     }
2385 }
2386 impl ::std::convert::From<&UsbInterfaceSetting> for ::windows::runtime::IInspectable {
from(value: &UsbInterfaceSetting) -> Self2387     fn from(value: &UsbInterfaceSetting) -> Self {
2388         value.0.clone()
2389     }
2390 }
2391 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbInterfaceSetting {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2392     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2393         ::windows::runtime::Param::Owned(self.0)
2394     }
2395 }
2396 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbInterfaceSetting {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2397     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2398         ::windows::runtime::Param::Borrowed(&self.0)
2399     }
2400 }
2401 unsafe impl ::std::marker::Send for UsbInterfaceSetting {}
2402 unsafe impl ::std::marker::Sync for UsbInterfaceSetting {}
2403 #[repr(transparent)]
2404 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2405 pub struct UsbInterruptInEndpointDescriptor(::windows::runtime::IInspectable);
2406 impl UsbInterruptInEndpointDescriptor {
MaxPacketSize(&self) -> ::windows::runtime::Result<u32>2407     pub fn MaxPacketSize(&self) -> ::windows::runtime::Result<u32> {
2408         let this = self;
2409         unsafe {
2410             let mut result__: u32 = ::std::mem::zeroed();
2411             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2412         }
2413     }
EndpointNumber(&self) -> ::windows::runtime::Result<u8>2414     pub fn EndpointNumber(&self) -> ::windows::runtime::Result<u8> {
2415         let this = self;
2416         unsafe {
2417             let mut result__: u8 = ::std::mem::zeroed();
2418             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
2419         }
2420     }
2421     #[cfg(feature = "Foundation")]
Interval(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>2422     pub fn Interval(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
2423         let this = self;
2424         unsafe {
2425             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
2426             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
2427         }
2428     }
Pipe(&self) -> ::windows::runtime::Result<UsbInterruptInPipe>2429     pub fn Pipe(&self) -> ::windows::runtime::Result<UsbInterruptInPipe> {
2430         let this = self;
2431         unsafe {
2432             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2433             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbInterruptInPipe>(result__)
2434         }
2435     }
2436 }
2437 unsafe impl ::windows::runtime::RuntimeType for UsbInterruptInEndpointDescriptor {
2438     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbInterruptInEndpointDescriptor;{c0528967-c911-4c3a-86b2-419c2da89039})");
2439 }
2440 unsafe impl ::windows::runtime::Interface for UsbInterruptInEndpointDescriptor {
2441     type Vtable = IUsbInterruptInEndpointDescriptor_abi;
2442     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3226634599, 51473, 19514, [134, 178, 65, 156, 45, 168, 144, 57]);
2443 }
2444 impl ::windows::runtime::RuntimeName for UsbInterruptInEndpointDescriptor {
2445     const NAME: &'static str = "Windows.Devices.Usb.UsbInterruptInEndpointDescriptor";
2446 }
2447 impl ::std::convert::From<UsbInterruptInEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: UsbInterruptInEndpointDescriptor) -> Self2448     fn from(value: UsbInterruptInEndpointDescriptor) -> Self {
2449         unsafe { ::std::mem::transmute(value) }
2450     }
2451 }
2452 impl ::std::convert::From<&UsbInterruptInEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: &UsbInterruptInEndpointDescriptor) -> Self2453     fn from(value: &UsbInterruptInEndpointDescriptor) -> Self {
2454         ::std::convert::From::from(::std::clone::Clone::clone(value))
2455     }
2456 }
2457 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbInterruptInEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2458     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2459         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2460     }
2461 }
2462 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbInterruptInEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2463     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2464         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2465     }
2466 }
2467 impl ::std::convert::From<UsbInterruptInEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: UsbInterruptInEndpointDescriptor) -> Self2468     fn from(value: UsbInterruptInEndpointDescriptor) -> Self {
2469         value.0
2470     }
2471 }
2472 impl ::std::convert::From<&UsbInterruptInEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: &UsbInterruptInEndpointDescriptor) -> Self2473     fn from(value: &UsbInterruptInEndpointDescriptor) -> Self {
2474         value.0.clone()
2475     }
2476 }
2477 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbInterruptInEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2478     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2479         ::windows::runtime::Param::Owned(self.0)
2480     }
2481 }
2482 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbInterruptInEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2483     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2484         ::windows::runtime::Param::Borrowed(&self.0)
2485     }
2486 }
2487 unsafe impl ::std::marker::Send for UsbInterruptInEndpointDescriptor {}
2488 unsafe impl ::std::marker::Sync for UsbInterruptInEndpointDescriptor {}
2489 #[repr(transparent)]
2490 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2491 pub struct UsbInterruptInEventArgs(::windows::runtime::IInspectable);
2492 impl UsbInterruptInEventArgs {
2493     #[cfg(feature = "Storage_Streams")]
InterruptData(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer>2494     pub fn InterruptData(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer> {
2495         let this = self;
2496         unsafe {
2497             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2498             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IBuffer>(result__)
2499         }
2500     }
2501 }
2502 unsafe impl ::windows::runtime::RuntimeType for UsbInterruptInEventArgs {
2503     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbInterruptInEventArgs;{b7b04092-1418-4936-8209-299cf5605583})");
2504 }
2505 unsafe impl ::windows::runtime::Interface for UsbInterruptInEventArgs {
2506     type Vtable = IUsbInterruptInEventArgs_abi;
2507     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3081781394, 5144, 18742, [130, 9, 41, 156, 245, 96, 85, 131]);
2508 }
2509 impl ::windows::runtime::RuntimeName for UsbInterruptInEventArgs {
2510     const NAME: &'static str = "Windows.Devices.Usb.UsbInterruptInEventArgs";
2511 }
2512 impl ::std::convert::From<UsbInterruptInEventArgs> for ::windows::runtime::IUnknown {
from(value: UsbInterruptInEventArgs) -> Self2513     fn from(value: UsbInterruptInEventArgs) -> Self {
2514         unsafe { ::std::mem::transmute(value) }
2515     }
2516 }
2517 impl ::std::convert::From<&UsbInterruptInEventArgs> for ::windows::runtime::IUnknown {
from(value: &UsbInterruptInEventArgs) -> Self2518     fn from(value: &UsbInterruptInEventArgs) -> Self {
2519         ::std::convert::From::from(::std::clone::Clone::clone(value))
2520     }
2521 }
2522 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbInterruptInEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2523     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2524         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2525     }
2526 }
2527 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbInterruptInEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2528     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2529         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2530     }
2531 }
2532 impl ::std::convert::From<UsbInterruptInEventArgs> for ::windows::runtime::IInspectable {
from(value: UsbInterruptInEventArgs) -> Self2533     fn from(value: UsbInterruptInEventArgs) -> Self {
2534         value.0
2535     }
2536 }
2537 impl ::std::convert::From<&UsbInterruptInEventArgs> for ::windows::runtime::IInspectable {
from(value: &UsbInterruptInEventArgs) -> Self2538     fn from(value: &UsbInterruptInEventArgs) -> Self {
2539         value.0.clone()
2540     }
2541 }
2542 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbInterruptInEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2543     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2544         ::windows::runtime::Param::Owned(self.0)
2545     }
2546 }
2547 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbInterruptInEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2548     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2549         ::windows::runtime::Param::Borrowed(&self.0)
2550     }
2551 }
2552 unsafe impl ::std::marker::Send for UsbInterruptInEventArgs {}
2553 unsafe impl ::std::marker::Sync for UsbInterruptInEventArgs {}
2554 #[repr(transparent)]
2555 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2556 pub struct UsbInterruptInPipe(::windows::runtime::IInspectable);
2557 impl UsbInterruptInPipe {
EndpointDescriptor(&self) -> ::windows::runtime::Result<UsbInterruptInEndpointDescriptor>2558     pub fn EndpointDescriptor(&self) -> ::windows::runtime::Result<UsbInterruptInEndpointDescriptor> {
2559         let this = self;
2560         unsafe {
2561             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2562             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbInterruptInEndpointDescriptor>(result__)
2563         }
2564     }
2565     #[cfg(feature = "Foundation")]
ClearStallAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2566     pub fn ClearStallAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2567         let this = self;
2568         unsafe {
2569             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2570             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2571         }
2572     }
2573     #[cfg(feature = "Foundation")]
DataReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<UsbInterruptInPipe, UsbInterruptInEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>2574     pub fn DataReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<UsbInterruptInPipe, UsbInterruptInEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
2575         let this = self;
2576         unsafe {
2577             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
2578             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
2579         }
2580     }
2581     #[cfg(feature = "Foundation")]
RemoveDataReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>2582     pub fn RemoveDataReceived<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
2583         let this = self;
2584         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
2585     }
2586 }
2587 unsafe impl ::windows::runtime::RuntimeType for UsbInterruptInPipe {
2588     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbInterruptInPipe;{fa007116-84d7-48c7-8a3f-4c0b235f2ea6})");
2589 }
2590 unsafe impl ::windows::runtime::Interface for UsbInterruptInPipe {
2591     type Vtable = IUsbInterruptInPipe_abi;
2592     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4194332950, 34007, 18631, [138, 63, 76, 11, 35, 95, 46, 166]);
2593 }
2594 impl ::windows::runtime::RuntimeName for UsbInterruptInPipe {
2595     const NAME: &'static str = "Windows.Devices.Usb.UsbInterruptInPipe";
2596 }
2597 impl ::std::convert::From<UsbInterruptInPipe> for ::windows::runtime::IUnknown {
from(value: UsbInterruptInPipe) -> Self2598     fn from(value: UsbInterruptInPipe) -> Self {
2599         unsafe { ::std::mem::transmute(value) }
2600     }
2601 }
2602 impl ::std::convert::From<&UsbInterruptInPipe> for ::windows::runtime::IUnknown {
from(value: &UsbInterruptInPipe) -> Self2603     fn from(value: &UsbInterruptInPipe) -> Self {
2604         ::std::convert::From::from(::std::clone::Clone::clone(value))
2605     }
2606 }
2607 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbInterruptInPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2608     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2609         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2610     }
2611 }
2612 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbInterruptInPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2613     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2614         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2615     }
2616 }
2617 impl ::std::convert::From<UsbInterruptInPipe> for ::windows::runtime::IInspectable {
from(value: UsbInterruptInPipe) -> Self2618     fn from(value: UsbInterruptInPipe) -> Self {
2619         value.0
2620     }
2621 }
2622 impl ::std::convert::From<&UsbInterruptInPipe> for ::windows::runtime::IInspectable {
from(value: &UsbInterruptInPipe) -> Self2623     fn from(value: &UsbInterruptInPipe) -> Self {
2624         value.0.clone()
2625     }
2626 }
2627 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbInterruptInPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2628     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2629         ::windows::runtime::Param::Owned(self.0)
2630     }
2631 }
2632 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbInterruptInPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2633     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2634         ::windows::runtime::Param::Borrowed(&self.0)
2635     }
2636 }
2637 unsafe impl ::std::marker::Send for UsbInterruptInPipe {}
2638 unsafe impl ::std::marker::Sync for UsbInterruptInPipe {}
2639 #[repr(transparent)]
2640 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2641 pub struct UsbInterruptOutEndpointDescriptor(::windows::runtime::IInspectable);
2642 impl UsbInterruptOutEndpointDescriptor {
MaxPacketSize(&self) -> ::windows::runtime::Result<u32>2643     pub fn MaxPacketSize(&self) -> ::windows::runtime::Result<u32> {
2644         let this = self;
2645         unsafe {
2646             let mut result__: u32 = ::std::mem::zeroed();
2647             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2648         }
2649     }
EndpointNumber(&self) -> ::windows::runtime::Result<u8>2650     pub fn EndpointNumber(&self) -> ::windows::runtime::Result<u8> {
2651         let this = self;
2652         unsafe {
2653             let mut result__: u8 = ::std::mem::zeroed();
2654             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
2655         }
2656     }
2657     #[cfg(feature = "Foundation")]
Interval(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>2658     pub fn Interval(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
2659         let this = self;
2660         unsafe {
2661             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
2662             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
2663         }
2664     }
Pipe(&self) -> ::windows::runtime::Result<UsbInterruptOutPipe>2665     pub fn Pipe(&self) -> ::windows::runtime::Result<UsbInterruptOutPipe> {
2666         let this = self;
2667         unsafe {
2668             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2669             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbInterruptOutPipe>(result__)
2670         }
2671     }
2672 }
2673 unsafe impl ::windows::runtime::RuntimeType for UsbInterruptOutEndpointDescriptor {
2674     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbInterruptOutEndpointDescriptor;{cc9fed81-10ca-4533-952d-9e278341e80f})");
2675 }
2676 unsafe impl ::windows::runtime::Interface for UsbInterruptOutEndpointDescriptor {
2677     type Vtable = IUsbInterruptOutEndpointDescriptor_abi;
2678     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3433033089, 4298, 17715, [149, 45, 158, 39, 131, 65, 232, 15]);
2679 }
2680 impl ::windows::runtime::RuntimeName for UsbInterruptOutEndpointDescriptor {
2681     const NAME: &'static str = "Windows.Devices.Usb.UsbInterruptOutEndpointDescriptor";
2682 }
2683 impl ::std::convert::From<UsbInterruptOutEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: UsbInterruptOutEndpointDescriptor) -> Self2684     fn from(value: UsbInterruptOutEndpointDescriptor) -> Self {
2685         unsafe { ::std::mem::transmute(value) }
2686     }
2687 }
2688 impl ::std::convert::From<&UsbInterruptOutEndpointDescriptor> for ::windows::runtime::IUnknown {
from(value: &UsbInterruptOutEndpointDescriptor) -> Self2689     fn from(value: &UsbInterruptOutEndpointDescriptor) -> Self {
2690         ::std::convert::From::from(::std::clone::Clone::clone(value))
2691     }
2692 }
2693 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbInterruptOutEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2694     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2695         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2696     }
2697 }
2698 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbInterruptOutEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2699     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2700         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2701     }
2702 }
2703 impl ::std::convert::From<UsbInterruptOutEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: UsbInterruptOutEndpointDescriptor) -> Self2704     fn from(value: UsbInterruptOutEndpointDescriptor) -> Self {
2705         value.0
2706     }
2707 }
2708 impl ::std::convert::From<&UsbInterruptOutEndpointDescriptor> for ::windows::runtime::IInspectable {
from(value: &UsbInterruptOutEndpointDescriptor) -> Self2709     fn from(value: &UsbInterruptOutEndpointDescriptor) -> Self {
2710         value.0.clone()
2711     }
2712 }
2713 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbInterruptOutEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2714     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2715         ::windows::runtime::Param::Owned(self.0)
2716     }
2717 }
2718 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbInterruptOutEndpointDescriptor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2719     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2720         ::windows::runtime::Param::Borrowed(&self.0)
2721     }
2722 }
2723 unsafe impl ::std::marker::Send for UsbInterruptOutEndpointDescriptor {}
2724 unsafe impl ::std::marker::Sync for UsbInterruptOutEndpointDescriptor {}
2725 #[repr(transparent)]
2726 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2727 pub struct UsbInterruptOutPipe(::windows::runtime::IInspectable);
2728 impl UsbInterruptOutPipe {
EndpointDescriptor(&self) -> ::windows::runtime::Result<UsbInterruptOutEndpointDescriptor>2729     pub fn EndpointDescriptor(&self) -> ::windows::runtime::Result<UsbInterruptOutEndpointDescriptor> {
2730         let this = self;
2731         unsafe {
2732             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2733             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbInterruptOutEndpointDescriptor>(result__)
2734         }
2735     }
2736     #[cfg(feature = "Foundation")]
ClearStallAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>2737     pub fn ClearStallAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
2738         let this = self;
2739         unsafe {
2740             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2741             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
2742         }
2743     }
SetWriteOptions(&self, value: UsbWriteOptions) -> ::windows::runtime::Result<()>2744     pub fn SetWriteOptions(&self, value: UsbWriteOptions) -> ::windows::runtime::Result<()> {
2745         let this = self;
2746         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
2747     }
WriteOptions(&self) -> ::windows::runtime::Result<UsbWriteOptions>2748     pub fn WriteOptions(&self) -> ::windows::runtime::Result<UsbWriteOptions> {
2749         let this = self;
2750         unsafe {
2751             let mut result__: UsbWriteOptions = ::std::mem::zeroed();
2752             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbWriteOptions>(result__)
2753         }
2754     }
2755     #[cfg(feature = "Storage_Streams")]
OutputStream(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IOutputStream>2756     pub fn OutputStream(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IOutputStream> {
2757         let this = self;
2758         unsafe {
2759             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2760             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IOutputStream>(result__)
2761         }
2762     }
2763 }
2764 unsafe impl ::windows::runtime::RuntimeType for UsbInterruptOutPipe {
2765     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbInterruptOutPipe;{e984c8a9-aaf9-49d0-b96c-f661ab4a7f95})");
2766 }
2767 unsafe impl ::windows::runtime::Interface for UsbInterruptOutPipe {
2768     type Vtable = IUsbInterruptOutPipe_abi;
2769     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3917793449, 43769, 18896, [185, 108, 246, 97, 171, 74, 127, 149]);
2770 }
2771 impl ::windows::runtime::RuntimeName for UsbInterruptOutPipe {
2772     const NAME: &'static str = "Windows.Devices.Usb.UsbInterruptOutPipe";
2773 }
2774 impl ::std::convert::From<UsbInterruptOutPipe> for ::windows::runtime::IUnknown {
from(value: UsbInterruptOutPipe) -> Self2775     fn from(value: UsbInterruptOutPipe) -> Self {
2776         unsafe { ::std::mem::transmute(value) }
2777     }
2778 }
2779 impl ::std::convert::From<&UsbInterruptOutPipe> for ::windows::runtime::IUnknown {
from(value: &UsbInterruptOutPipe) -> Self2780     fn from(value: &UsbInterruptOutPipe) -> Self {
2781         ::std::convert::From::from(::std::clone::Clone::clone(value))
2782     }
2783 }
2784 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbInterruptOutPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2785     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2786         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2787     }
2788 }
2789 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbInterruptOutPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2790     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2791         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2792     }
2793 }
2794 impl ::std::convert::From<UsbInterruptOutPipe> for ::windows::runtime::IInspectable {
from(value: UsbInterruptOutPipe) -> Self2795     fn from(value: UsbInterruptOutPipe) -> Self {
2796         value.0
2797     }
2798 }
2799 impl ::std::convert::From<&UsbInterruptOutPipe> for ::windows::runtime::IInspectable {
from(value: &UsbInterruptOutPipe) -> Self2800     fn from(value: &UsbInterruptOutPipe) -> Self {
2801         value.0.clone()
2802     }
2803 }
2804 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbInterruptOutPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2805     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2806         ::windows::runtime::Param::Owned(self.0)
2807     }
2808 }
2809 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbInterruptOutPipe {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2810     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2811         ::windows::runtime::Param::Borrowed(&self.0)
2812     }
2813 }
2814 unsafe impl ::std::marker::Send for UsbInterruptOutPipe {}
2815 unsafe impl ::std::marker::Sync for UsbInterruptOutPipe {}
2816 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2817 #[repr(transparent)]
2818 pub struct UsbReadOptions(pub u32);
2819 impl UsbReadOptions {
2820     pub const None: UsbReadOptions = UsbReadOptions(0u32);
2821     pub const AutoClearStall: UsbReadOptions = UsbReadOptions(1u32);
2822     pub const OverrideAutomaticBufferManagement: UsbReadOptions = UsbReadOptions(2u32);
2823     pub const IgnoreShortPacket: UsbReadOptions = UsbReadOptions(4u32);
2824     pub const AllowPartialReads: UsbReadOptions = UsbReadOptions(8u32);
2825 }
2826 impl ::std::convert::From<u32> for UsbReadOptions {
from(value: u32) -> Self2827     fn from(value: u32) -> Self {
2828         Self(value)
2829     }
2830 }
2831 unsafe impl ::windows::runtime::Abi for UsbReadOptions {
2832     type Abi = Self;
2833     type DefaultType = Self;
2834 }
2835 unsafe impl ::windows::runtime::RuntimeType for UsbReadOptions {
2836     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Usb.UsbReadOptions;u4)");
2837 }
2838 impl ::std::ops::BitOr for UsbReadOptions {
2839     type Output = Self;
bitor(self, rhs: Self) -> Self2840     fn bitor(self, rhs: Self) -> Self {
2841         Self(self.0 | rhs.0)
2842     }
2843 }
2844 impl ::std::ops::BitAnd for UsbReadOptions {
2845     type Output = Self;
bitand(self, rhs: Self) -> Self2846     fn bitand(self, rhs: Self) -> Self {
2847         Self(self.0 & rhs.0)
2848     }
2849 }
2850 impl ::std::ops::BitOrAssign for UsbReadOptions {
bitor_assign(&mut self, rhs: Self)2851     fn bitor_assign(&mut self, rhs: Self) {
2852         self.0.bitor_assign(rhs.0)
2853     }
2854 }
2855 impl ::std::ops::BitAndAssign for UsbReadOptions {
bitand_assign(&mut self, rhs: Self)2856     fn bitand_assign(&mut self, rhs: Self) {
2857         self.0.bitand_assign(rhs.0)
2858     }
2859 }
2860 impl ::std::ops::Not for UsbReadOptions {
2861     type Output = Self;
not(self) -> Self2862     fn not(self) -> Self {
2863         Self(self.0.not())
2864     }
2865 }
2866 #[repr(transparent)]
2867 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2868 pub struct UsbSetupPacket(::windows::runtime::IInspectable);
2869 impl UsbSetupPacket {
new() -> ::windows::runtime::Result<Self>2870     pub fn new() -> ::windows::runtime::Result<Self> {
2871         Self::IActivationFactory(|f| f.activate_instance::<Self>())
2872     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2873     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2874         static mut SHARED: ::windows::runtime::FactoryCache<UsbSetupPacket, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
2875         unsafe { SHARED.call(callback) }
2876     }
RequestType(&self) -> ::windows::runtime::Result<UsbControlRequestType>2877     pub fn RequestType(&self) -> ::windows::runtime::Result<UsbControlRequestType> {
2878         let this = self;
2879         unsafe {
2880             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2881             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<UsbControlRequestType>(result__)
2882         }
2883     }
SetRequestType<'a, Param0: ::windows::runtime::IntoParam<'a, UsbControlRequestType>>(&self, value: Param0) -> ::windows::runtime::Result<()>2884     pub fn SetRequestType<'a, Param0: ::windows::runtime::IntoParam<'a, UsbControlRequestType>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
2885         let this = self;
2886         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
2887     }
Request(&self) -> ::windows::runtime::Result<u8>2888     pub fn Request(&self) -> ::windows::runtime::Result<u8> {
2889         let this = self;
2890         unsafe {
2891             let mut result__: u8 = ::std::mem::zeroed();
2892             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u8>(result__)
2893         }
2894     }
SetRequest(&self, value: u8) -> ::windows::runtime::Result<()>2895     pub fn SetRequest(&self, value: u8) -> ::windows::runtime::Result<()> {
2896         let this = self;
2897         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
2898     }
Value(&self) -> ::windows::runtime::Result<u32>2899     pub fn Value(&self) -> ::windows::runtime::Result<u32> {
2900         let this = self;
2901         unsafe {
2902             let mut result__: u32 = ::std::mem::zeroed();
2903             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2904         }
2905     }
SetValue(&self, value: u32) -> ::windows::runtime::Result<()>2906     pub fn SetValue(&self, value: u32) -> ::windows::runtime::Result<()> {
2907         let this = self;
2908         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
2909     }
Index(&self) -> ::windows::runtime::Result<u32>2910     pub fn Index(&self) -> ::windows::runtime::Result<u32> {
2911         let this = self;
2912         unsafe {
2913             let mut result__: u32 = ::std::mem::zeroed();
2914             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2915         }
2916     }
SetIndex(&self, value: u32) -> ::windows::runtime::Result<()>2917     pub fn SetIndex(&self, value: u32) -> ::windows::runtime::Result<()> {
2918         let this = self;
2919         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value).ok() }
2920     }
Length(&self) -> ::windows::runtime::Result<u32>2921     pub fn Length(&self) -> ::windows::runtime::Result<u32> {
2922         let this = self;
2923         unsafe {
2924             let mut result__: u32 = ::std::mem::zeroed();
2925             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2926         }
2927     }
SetLength(&self, value: u32) -> ::windows::runtime::Result<()>2928     pub fn SetLength(&self, value: u32) -> ::windows::runtime::Result<()> {
2929         let this = self;
2930         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value).ok() }
2931     }
2932     #[cfg(feature = "Storage_Streams")]
CreateWithEightByteBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(eightbytebuffer: Param0) -> ::windows::runtime::Result<UsbSetupPacket>2933     pub fn CreateWithEightByteBuffer<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IBuffer>>(eightbytebuffer: Param0) -> ::windows::runtime::Result<UsbSetupPacket> {
2934         Self::IUsbSetupPacketFactory(|this| unsafe {
2935             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2936             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), eightbytebuffer.into_param().abi(), &mut result__).from_abi::<UsbSetupPacket>(result__)
2937         })
2938     }
IUsbSetupPacketFactory<R, F: FnOnce(&IUsbSetupPacketFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2939     pub fn IUsbSetupPacketFactory<R, F: FnOnce(&IUsbSetupPacketFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2940         static mut SHARED: ::windows::runtime::FactoryCache<UsbSetupPacket, IUsbSetupPacketFactory> = ::windows::runtime::FactoryCache::new();
2941         unsafe { SHARED.call(callback) }
2942     }
2943 }
2944 unsafe impl ::windows::runtime::RuntimeType for UsbSetupPacket {
2945     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Usb.UsbSetupPacket;{104ba132-c78f-4c51-b654-e49d02f2cb03})");
2946 }
2947 unsafe impl ::windows::runtime::Interface for UsbSetupPacket {
2948     type Vtable = IUsbSetupPacket_abi;
2949     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(273391922, 51087, 19537, [182, 84, 228, 157, 2, 242, 203, 3]);
2950 }
2951 impl ::windows::runtime::RuntimeName for UsbSetupPacket {
2952     const NAME: &'static str = "Windows.Devices.Usb.UsbSetupPacket";
2953 }
2954 impl ::std::convert::From<UsbSetupPacket> for ::windows::runtime::IUnknown {
from(value: UsbSetupPacket) -> Self2955     fn from(value: UsbSetupPacket) -> Self {
2956         unsafe { ::std::mem::transmute(value) }
2957     }
2958 }
2959 impl ::std::convert::From<&UsbSetupPacket> for ::windows::runtime::IUnknown {
from(value: &UsbSetupPacket) -> Self2960     fn from(value: &UsbSetupPacket) -> Self {
2961         ::std::convert::From::from(::std::clone::Clone::clone(value))
2962     }
2963 }
2964 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UsbSetupPacket {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2965     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2966         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2967     }
2968 }
2969 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UsbSetupPacket {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2970     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2971         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2972     }
2973 }
2974 impl ::std::convert::From<UsbSetupPacket> for ::windows::runtime::IInspectable {
from(value: UsbSetupPacket) -> Self2975     fn from(value: UsbSetupPacket) -> Self {
2976         value.0
2977     }
2978 }
2979 impl ::std::convert::From<&UsbSetupPacket> for ::windows::runtime::IInspectable {
from(value: &UsbSetupPacket) -> Self2980     fn from(value: &UsbSetupPacket) -> Self {
2981         value.0.clone()
2982     }
2983 }
2984 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UsbSetupPacket {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2985     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2986         ::windows::runtime::Param::Owned(self.0)
2987     }
2988 }
2989 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UsbSetupPacket {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2990     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2991         ::windows::runtime::Param::Borrowed(&self.0)
2992     }
2993 }
2994 unsafe impl ::std::marker::Send for UsbSetupPacket {}
2995 unsafe impl ::std::marker::Sync for UsbSetupPacket {}
2996 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2997 #[repr(transparent)]
2998 pub struct UsbTransferDirection(pub i32);
2999 impl UsbTransferDirection {
3000     pub const Out: UsbTransferDirection = UsbTransferDirection(0i32);
3001     pub const In: UsbTransferDirection = UsbTransferDirection(1i32);
3002 }
3003 impl ::std::convert::From<i32> for UsbTransferDirection {
from(value: i32) -> Self3004     fn from(value: i32) -> Self {
3005         Self(value)
3006     }
3007 }
3008 unsafe impl ::windows::runtime::Abi for UsbTransferDirection {
3009     type Abi = Self;
3010     type DefaultType = Self;
3011 }
3012 unsafe impl ::windows::runtime::RuntimeType for UsbTransferDirection {
3013     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Usb.UsbTransferDirection;i4)");
3014 }
3015 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3016 #[repr(transparent)]
3017 pub struct UsbWriteOptions(pub u32);
3018 impl UsbWriteOptions {
3019     pub const None: UsbWriteOptions = UsbWriteOptions(0u32);
3020     pub const AutoClearStall: UsbWriteOptions = UsbWriteOptions(1u32);
3021     pub const ShortPacketTerminate: UsbWriteOptions = UsbWriteOptions(2u32);
3022 }
3023 impl ::std::convert::From<u32> for UsbWriteOptions {
from(value: u32) -> Self3024     fn from(value: u32) -> Self {
3025         Self(value)
3026     }
3027 }
3028 unsafe impl ::windows::runtime::Abi for UsbWriteOptions {
3029     type Abi = Self;
3030     type DefaultType = Self;
3031 }
3032 unsafe impl ::windows::runtime::RuntimeType for UsbWriteOptions {
3033     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Usb.UsbWriteOptions;u4)");
3034 }
3035 impl ::std::ops::BitOr for UsbWriteOptions {
3036     type Output = Self;
bitor(self, rhs: Self) -> Self3037     fn bitor(self, rhs: Self) -> Self {
3038         Self(self.0 | rhs.0)
3039     }
3040 }
3041 impl ::std::ops::BitAnd for UsbWriteOptions {
3042     type Output = Self;
bitand(self, rhs: Self) -> Self3043     fn bitand(self, rhs: Self) -> Self {
3044         Self(self.0 & rhs.0)
3045     }
3046 }
3047 impl ::std::ops::BitOrAssign for UsbWriteOptions {
bitor_assign(&mut self, rhs: Self)3048     fn bitor_assign(&mut self, rhs: Self) {
3049         self.0.bitor_assign(rhs.0)
3050     }
3051 }
3052 impl ::std::ops::BitAndAssign for UsbWriteOptions {
bitand_assign(&mut self, rhs: Self)3053     fn bitand_assign(&mut self, rhs: Self) {
3054         self.0.bitand_assign(rhs.0)
3055     }
3056 }
3057 impl ::std::ops::Not for UsbWriteOptions {
3058     type Output = Self;
not(self) -> Self3059     fn not(self) -> Self {
3060         Self(self.0.not())
3061     }
3062 }
3063