1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[cfg(feature = "Devices_Adc")]
3 pub mod Adc;
4 #[cfg(feature = "Devices_AllJoyn")]
5 pub mod AllJoyn;
6 #[cfg(feature = "Devices_Background")]
7 pub mod Background;
8 #[cfg(feature = "Devices_Bluetooth")]
9 pub mod Bluetooth;
10 #[cfg(feature = "Devices_Custom")]
11 pub mod Custom;
12 #[cfg(feature = "Devices_Display")]
13 pub mod Display;
14 #[cfg(feature = "Devices_Enumeration")]
15 pub mod Enumeration;
16 #[cfg(feature = "Devices_Geolocation")]
17 pub mod Geolocation;
18 #[cfg(feature = "Devices_Gpio")]
19 pub mod Gpio;
20 #[cfg(feature = "Devices_Haptics")]
21 pub mod Haptics;
22 #[cfg(feature = "Devices_HumanInterfaceDevice")]
23 pub mod HumanInterfaceDevice;
24 #[cfg(feature = "Devices_I2c")]
25 pub mod I2c;
26 #[cfg(feature = "Devices_Input")]
27 pub mod Input;
28 #[cfg(feature = "Devices_Lights")]
29 pub mod Lights;
30 #[cfg(feature = "Devices_Midi")]
31 pub mod Midi;
32 #[cfg(feature = "Devices_Perception")]
33 pub mod Perception;
34 #[cfg(feature = "Devices_PointOfService")]
35 pub mod PointOfService;
36 #[cfg(feature = "Devices_Portable")]
37 pub mod Portable;
38 #[cfg(feature = "Devices_Power")]
39 pub mod Power;
40 #[cfg(feature = "Devices_Printers")]
41 pub mod Printers;
42 #[cfg(feature = "Devices_Pwm")]
43 pub mod Pwm;
44 #[cfg(feature = "Devices_Radios")]
45 pub mod Radios;
46 #[cfg(feature = "Devices_Scanners")]
47 pub mod Scanners;
48 #[cfg(feature = "Devices_Sensors")]
49 pub mod Sensors;
50 #[cfg(feature = "Devices_SerialCommunication")]
51 pub mod SerialCommunication;
52 #[cfg(feature = "Devices_SmartCards")]
53 pub mod SmartCards;
54 #[cfg(feature = "Devices_Sms")]
55 pub mod Sms;
56 #[cfg(feature = "Devices_Spi")]
57 pub mod Spi;
58 #[cfg(feature = "Devices_Usb")]
59 pub mod Usb;
60 #[cfg(feature = "Devices_WiFi")]
61 pub mod WiFi;
62 #[cfg(feature = "Devices_WiFiDirect")]
63 pub mod WiFiDirect;
64 #[repr(C)]
65 #[derive(:: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug, :: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy)]
66 pub struct DevicesLowLevelContract(pub u8);
67 #[repr(transparent)]
68 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
69 pub struct ILowLevelDevicesAggregateProvider(::windows::runtime::IInspectable);
70 unsafe impl ::windows::runtime::Interface for ILowLevelDevicesAggregateProvider {
71     type Vtable = ILowLevelDevicesAggregateProvider_abi;
72     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2805880348, 43713, 20167, [168, 82, 71, 159, 112, 96, 208, 31]);
73 }
74 impl ILowLevelDevicesAggregateProvider {
75     #[cfg(feature = "Devices_Adc_Provider")]
AdcControllerProvider(&self) -> ::windows::runtime::Result<Adc::Provider::IAdcControllerProvider>76     pub fn AdcControllerProvider(&self) -> ::windows::runtime::Result<Adc::Provider::IAdcControllerProvider> {
77         let this = self;
78         unsafe {
79             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
80             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Adc::Provider::IAdcControllerProvider>(result__)
81         }
82     }
83     #[cfg(feature = "Devices_Pwm_Provider")]
PwmControllerProvider(&self) -> ::windows::runtime::Result<Pwm::Provider::IPwmControllerProvider>84     pub fn PwmControllerProvider(&self) -> ::windows::runtime::Result<Pwm::Provider::IPwmControllerProvider> {
85         let this = self;
86         unsafe {
87             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
88             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Pwm::Provider::IPwmControllerProvider>(result__)
89         }
90     }
91     #[cfg(feature = "Devices_Gpio_Provider")]
GpioControllerProvider(&self) -> ::windows::runtime::Result<Gpio::Provider::IGpioControllerProvider>92     pub fn GpioControllerProvider(&self) -> ::windows::runtime::Result<Gpio::Provider::IGpioControllerProvider> {
93         let this = self;
94         unsafe {
95             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
96             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Gpio::Provider::IGpioControllerProvider>(result__)
97         }
98     }
99     #[cfg(feature = "Devices_I2c_Provider")]
I2cControllerProvider(&self) -> ::windows::runtime::Result<I2c::Provider::II2cControllerProvider>100     pub fn I2cControllerProvider(&self) -> ::windows::runtime::Result<I2c::Provider::II2cControllerProvider> {
101         let this = self;
102         unsafe {
103             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
104             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<I2c::Provider::II2cControllerProvider>(result__)
105         }
106     }
107     #[cfg(feature = "Devices_Spi_Provider")]
SpiControllerProvider(&self) -> ::windows::runtime::Result<Spi::Provider::ISpiControllerProvider>108     pub fn SpiControllerProvider(&self) -> ::windows::runtime::Result<Spi::Provider::ISpiControllerProvider> {
109         let this = self;
110         unsafe {
111             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
112             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Spi::Provider::ISpiControllerProvider>(result__)
113         }
114     }
115 }
116 unsafe impl ::windows::runtime::RuntimeType for ILowLevelDevicesAggregateProvider {
117     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{a73e561c-aac1-4ec7-a852-479f7060d01f}");
118 }
119 impl ::std::convert::From<ILowLevelDevicesAggregateProvider> for ::windows::runtime::IUnknown {
from(value: ILowLevelDevicesAggregateProvider) -> Self120     fn from(value: ILowLevelDevicesAggregateProvider) -> Self {
121         unsafe { ::std::mem::transmute(value) }
122     }
123 }
124 impl ::std::convert::From<&ILowLevelDevicesAggregateProvider> for ::windows::runtime::IUnknown {
from(value: &ILowLevelDevicesAggregateProvider) -> Self125     fn from(value: &ILowLevelDevicesAggregateProvider) -> Self {
126         ::std::convert::From::from(::std::clone::Clone::clone(value))
127     }
128 }
129 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ILowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>130     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
131         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
132     }
133 }
134 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ILowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>135     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
136         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
137     }
138 }
139 impl ::std::convert::From<ILowLevelDevicesAggregateProvider> for ::windows::runtime::IInspectable {
from(value: ILowLevelDevicesAggregateProvider) -> Self140     fn from(value: ILowLevelDevicesAggregateProvider) -> Self {
141         value.0
142     }
143 }
144 impl ::std::convert::From<&ILowLevelDevicesAggregateProvider> for ::windows::runtime::IInspectable {
from(value: &ILowLevelDevicesAggregateProvider) -> Self145     fn from(value: &ILowLevelDevicesAggregateProvider) -> Self {
146         value.0.clone()
147     }
148 }
149 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ILowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>150     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
151         ::windows::runtime::Param::Owned(self.0)
152     }
153 }
154 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ILowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>155     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
156         ::windows::runtime::Param::Borrowed(&self.0)
157     }
158 }
159 #[repr(C)]
160 #[doc(hidden)]
161 pub struct ILowLevelDevicesAggregateProvider_abi(
162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
163     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
164     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
165     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
166     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
167     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
168     #[cfg(feature = "Devices_Adc_Provider")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
169     #[cfg(not(feature = "Devices_Adc_Provider"))] usize,
170     #[cfg(feature = "Devices_Pwm_Provider")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
171     #[cfg(not(feature = "Devices_Pwm_Provider"))] usize,
172     #[cfg(feature = "Devices_Gpio_Provider")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
173     #[cfg(not(feature = "Devices_Gpio_Provider"))] usize,
174     #[cfg(feature = "Devices_I2c_Provider")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
175     #[cfg(not(feature = "Devices_I2c_Provider"))] usize,
176     #[cfg(feature = "Devices_Spi_Provider")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
177     #[cfg(not(feature = "Devices_Spi_Provider"))] usize,
178 );
179 #[repr(transparent)]
180 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
181 #[doc(hidden)]
182 pub struct ILowLevelDevicesAggregateProviderFactory(::windows::runtime::IInspectable);
183 unsafe impl ::windows::runtime::Interface for ILowLevelDevicesAggregateProviderFactory {
184     type Vtable = ILowLevelDevicesAggregateProviderFactory_abi;
185     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2596580086, 13427, 18014, [150, 213, 54, 40, 26, 44, 87, 175]);
186 }
187 #[repr(C)]
188 #[doc(hidden)]
189 pub struct ILowLevelDevicesAggregateProviderFactory_abi(
190     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
191     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
192     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
193     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
194     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
195     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
196     #[cfg(all(feature = "Devices_Adc_Provider", feature = "Devices_Gpio_Provider", feature = "Devices_I2c_Provider", feature = "Devices_Pwm_Provider", feature = "Devices_Spi_Provider"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, adc: ::windows::runtime::RawPtr, pwm: ::windows::runtime::RawPtr, gpio: ::windows::runtime::RawPtr, i2c: ::windows::runtime::RawPtr, spi: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
197     #[cfg(not(all(feature = "Devices_Adc_Provider", feature = "Devices_Gpio_Provider", feature = "Devices_I2c_Provider", feature = "Devices_Pwm_Provider", feature = "Devices_Spi_Provider")))] usize,
198 );
199 #[repr(transparent)]
200 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
201 #[doc(hidden)]
202 pub struct ILowLevelDevicesController(::windows::runtime::IInspectable);
203 unsafe impl ::windows::runtime::Interface for ILowLevelDevicesController {
204     type Vtable = ILowLevelDevicesController_abi;
205     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(784481748, 6043, 17886, [155, 57, 58, 224, 37, 39, 222, 82]);
206 }
207 #[repr(C)]
208 #[doc(hidden)]
209 pub struct ILowLevelDevicesController_abi(
210     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
211     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
212     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
213     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
214     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
215     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
216 );
217 #[repr(transparent)]
218 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
219 #[doc(hidden)]
220 pub struct ILowLevelDevicesControllerStatics(::windows::runtime::IInspectable);
221 unsafe impl ::windows::runtime::Interface for ILowLevelDevicesControllerStatics {
222     type Vtable = ILowLevelDevicesControllerStatics_abi;
223     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(155095658, 64715, 17300, [166, 151, 25, 222, 99, 124, 45, 179]);
224 }
225 #[repr(C)]
226 #[doc(hidden)]
227 pub struct ILowLevelDevicesControllerStatics_abi(
228     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
229     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
230     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
231     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
232     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
233     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
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, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
236 );
237 #[repr(transparent)]
238 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
239 pub struct LowLevelDevicesAggregateProvider(::windows::runtime::IInspectable);
240 impl LowLevelDevicesAggregateProvider {
241     #[cfg(feature = "Devices_Adc_Provider")]
AdcControllerProvider(&self) -> ::windows::runtime::Result<Adc::Provider::IAdcControllerProvider>242     pub fn AdcControllerProvider(&self) -> ::windows::runtime::Result<Adc::Provider::IAdcControllerProvider> {
243         let this = self;
244         unsafe {
245             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
246             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Adc::Provider::IAdcControllerProvider>(result__)
247         }
248     }
249     #[cfg(feature = "Devices_Pwm_Provider")]
PwmControllerProvider(&self) -> ::windows::runtime::Result<Pwm::Provider::IPwmControllerProvider>250     pub fn PwmControllerProvider(&self) -> ::windows::runtime::Result<Pwm::Provider::IPwmControllerProvider> {
251         let this = self;
252         unsafe {
253             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
254             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Pwm::Provider::IPwmControllerProvider>(result__)
255         }
256     }
257     #[cfg(feature = "Devices_Gpio_Provider")]
GpioControllerProvider(&self) -> ::windows::runtime::Result<Gpio::Provider::IGpioControllerProvider>258     pub fn GpioControllerProvider(&self) -> ::windows::runtime::Result<Gpio::Provider::IGpioControllerProvider> {
259         let this = self;
260         unsafe {
261             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
262             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Gpio::Provider::IGpioControllerProvider>(result__)
263         }
264     }
265     #[cfg(feature = "Devices_I2c_Provider")]
I2cControllerProvider(&self) -> ::windows::runtime::Result<I2c::Provider::II2cControllerProvider>266     pub fn I2cControllerProvider(&self) -> ::windows::runtime::Result<I2c::Provider::II2cControllerProvider> {
267         let this = self;
268         unsafe {
269             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
270             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<I2c::Provider::II2cControllerProvider>(result__)
271         }
272     }
273     #[cfg(feature = "Devices_Spi_Provider")]
SpiControllerProvider(&self) -> ::windows::runtime::Result<Spi::Provider::ISpiControllerProvider>274     pub fn SpiControllerProvider(&self) -> ::windows::runtime::Result<Spi::Provider::ISpiControllerProvider> {
275         let this = self;
276         unsafe {
277             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
278             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Spi::Provider::ISpiControllerProvider>(result__)
279         }
280     }
281     #[cfg(all(feature = "Devices_Adc_Provider", feature = "Devices_Gpio_Provider", feature = "Devices_I2c_Provider", feature = "Devices_Pwm_Provider", feature = "Devices_Spi_Provider"))]
Create<'a, Param0: ::windows::runtime::IntoParam<'a, Adc::Provider::IAdcControllerProvider>, Param1: ::windows::runtime::IntoParam<'a, Pwm::Provider::IPwmControllerProvider>, Param2: ::windows::runtime::IntoParam<'a, Gpio::Provider::IGpioControllerProvider>, Param3: ::windows::runtime::IntoParam<'a, I2c::Provider::II2cControllerProvider>, Param4: ::windows::runtime::IntoParam<'a, Spi::Provider::ISpiControllerProvider>>( adc: Param0, pwm: Param1, gpio: Param2, i2c: Param3, spi: Param4, ) -> ::windows::runtime::Result<LowLevelDevicesAggregateProvider>282     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, Adc::Provider::IAdcControllerProvider>, Param1: ::windows::runtime::IntoParam<'a, Pwm::Provider::IPwmControllerProvider>, Param2: ::windows::runtime::IntoParam<'a, Gpio::Provider::IGpioControllerProvider>, Param3: ::windows::runtime::IntoParam<'a, I2c::Provider::II2cControllerProvider>, Param4: ::windows::runtime::IntoParam<'a, Spi::Provider::ISpiControllerProvider>>(
283         adc: Param0,
284         pwm: Param1,
285         gpio: Param2,
286         i2c: Param3,
287         spi: Param4,
288     ) -> ::windows::runtime::Result<LowLevelDevicesAggregateProvider> {
289         Self::ILowLevelDevicesAggregateProviderFactory(|this| unsafe {
290             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
291             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), adc.into_param().abi(), pwm.into_param().abi(), gpio.into_param().abi(), i2c.into_param().abi(), spi.into_param().abi(), &mut result__).from_abi::<LowLevelDevicesAggregateProvider>(result__)
292         })
293     }
ILowLevelDevicesAggregateProviderFactory<R, F: FnOnce(&ILowLevelDevicesAggregateProviderFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>294     pub fn ILowLevelDevicesAggregateProviderFactory<R, F: FnOnce(&ILowLevelDevicesAggregateProviderFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
295         static mut SHARED: ::windows::runtime::FactoryCache<LowLevelDevicesAggregateProvider, ILowLevelDevicesAggregateProviderFactory> = ::windows::runtime::FactoryCache::new();
296         unsafe { SHARED.call(callback) }
297     }
298 }
299 unsafe impl ::windows::runtime::RuntimeType for LowLevelDevicesAggregateProvider {
300     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.LowLevelDevicesAggregateProvider;{a73e561c-aac1-4ec7-a852-479f7060d01f})");
301 }
302 unsafe impl ::windows::runtime::Interface for LowLevelDevicesAggregateProvider {
303     type Vtable = ILowLevelDevicesAggregateProvider_abi;
304     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2805880348, 43713, 20167, [168, 82, 71, 159, 112, 96, 208, 31]);
305 }
306 impl ::windows::runtime::RuntimeName for LowLevelDevicesAggregateProvider {
307     const NAME: &'static str = "Windows.Devices.LowLevelDevicesAggregateProvider";
308 }
309 impl ::std::convert::From<LowLevelDevicesAggregateProvider> for ::windows::runtime::IUnknown {
from(value: LowLevelDevicesAggregateProvider) -> Self310     fn from(value: LowLevelDevicesAggregateProvider) -> Self {
311         unsafe { ::std::mem::transmute(value) }
312     }
313 }
314 impl ::std::convert::From<&LowLevelDevicesAggregateProvider> for ::windows::runtime::IUnknown {
from(value: &LowLevelDevicesAggregateProvider) -> Self315     fn from(value: &LowLevelDevicesAggregateProvider) -> Self {
316         ::std::convert::From::from(::std::clone::Clone::clone(value))
317     }
318 }
319 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for LowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>320     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
321         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
322     }
323 }
324 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &LowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>325     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
326         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
327     }
328 }
329 impl ::std::convert::From<LowLevelDevicesAggregateProvider> for ::windows::runtime::IInspectable {
from(value: LowLevelDevicesAggregateProvider) -> Self330     fn from(value: LowLevelDevicesAggregateProvider) -> Self {
331         value.0
332     }
333 }
334 impl ::std::convert::From<&LowLevelDevicesAggregateProvider> for ::windows::runtime::IInspectable {
from(value: &LowLevelDevicesAggregateProvider) -> Self335     fn from(value: &LowLevelDevicesAggregateProvider) -> Self {
336         value.0.clone()
337     }
338 }
339 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for LowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>340     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
341         ::windows::runtime::Param::Owned(self.0)
342     }
343 }
344 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a LowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>345     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
346         ::windows::runtime::Param::Borrowed(&self.0)
347     }
348 }
349 impl ::std::convert::From<LowLevelDevicesAggregateProvider> for ILowLevelDevicesAggregateProvider {
from(value: LowLevelDevicesAggregateProvider) -> Self350     fn from(value: LowLevelDevicesAggregateProvider) -> Self {
351         unsafe { ::std::mem::transmute(value) }
352     }
353 }
354 impl ::std::convert::From<&LowLevelDevicesAggregateProvider> for ILowLevelDevicesAggregateProvider {
from(value: &LowLevelDevicesAggregateProvider) -> Self355     fn from(value: &LowLevelDevicesAggregateProvider) -> Self {
356         ::std::convert::From::from(::std::clone::Clone::clone(value))
357     }
358 }
359 impl<'a> ::windows::runtime::IntoParam<'a, ILowLevelDevicesAggregateProvider> for LowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ILowLevelDevicesAggregateProvider>360     fn into_param(self) -> ::windows::runtime::Param<'a, ILowLevelDevicesAggregateProvider> {
361         ::windows::runtime::Param::Owned(::std::convert::Into::<ILowLevelDevicesAggregateProvider>::into(self))
362     }
363 }
364 impl<'a> ::windows::runtime::IntoParam<'a, ILowLevelDevicesAggregateProvider> for &LowLevelDevicesAggregateProvider {
into_param(self) -> ::windows::runtime::Param<'a, ILowLevelDevicesAggregateProvider>365     fn into_param(self) -> ::windows::runtime::Param<'a, ILowLevelDevicesAggregateProvider> {
366         ::windows::runtime::Param::Owned(::std::convert::Into::<ILowLevelDevicesAggregateProvider>::into(::std::clone::Clone::clone(self)))
367     }
368 }
369 unsafe impl ::std::marker::Send for LowLevelDevicesAggregateProvider {}
370 unsafe impl ::std::marker::Sync for LowLevelDevicesAggregateProvider {}
371 #[repr(transparent)]
372 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
373 pub struct LowLevelDevicesController(::windows::runtime::IInspectable);
374 impl LowLevelDevicesController {
DefaultProvider() -> ::windows::runtime::Result<ILowLevelDevicesAggregateProvider>375     pub fn DefaultProvider() -> ::windows::runtime::Result<ILowLevelDevicesAggregateProvider> {
376         Self::ILowLevelDevicesControllerStatics(|this| unsafe {
377             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
378             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ILowLevelDevicesAggregateProvider>(result__)
379         })
380     }
SetDefaultProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ILowLevelDevicesAggregateProvider>>(value: Param0) -> ::windows::runtime::Result<()>381     pub fn SetDefaultProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ILowLevelDevicesAggregateProvider>>(value: Param0) -> ::windows::runtime::Result<()> {
382         Self::ILowLevelDevicesControllerStatics(|this| unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() })
383     }
ILowLevelDevicesControllerStatics<R, F: FnOnce(&ILowLevelDevicesControllerStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>384     pub fn ILowLevelDevicesControllerStatics<R, F: FnOnce(&ILowLevelDevicesControllerStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
385         static mut SHARED: ::windows::runtime::FactoryCache<LowLevelDevicesController, ILowLevelDevicesControllerStatics> = ::windows::runtime::FactoryCache::new();
386         unsafe { SHARED.call(callback) }
387     }
388 }
389 unsafe impl ::windows::runtime::RuntimeType for LowLevelDevicesController {
390     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.LowLevelDevicesController;{2ec23dd4-179b-45de-9b39-3ae02527de52})");
391 }
392 unsafe impl ::windows::runtime::Interface for LowLevelDevicesController {
393     type Vtable = ILowLevelDevicesController_abi;
394     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(784481748, 6043, 17886, [155, 57, 58, 224, 37, 39, 222, 82]);
395 }
396 impl ::windows::runtime::RuntimeName for LowLevelDevicesController {
397     const NAME: &'static str = "Windows.Devices.LowLevelDevicesController";
398 }
399 impl ::std::convert::From<LowLevelDevicesController> for ::windows::runtime::IUnknown {
from(value: LowLevelDevicesController) -> Self400     fn from(value: LowLevelDevicesController) -> Self {
401         unsafe { ::std::mem::transmute(value) }
402     }
403 }
404 impl ::std::convert::From<&LowLevelDevicesController> for ::windows::runtime::IUnknown {
from(value: &LowLevelDevicesController) -> Self405     fn from(value: &LowLevelDevicesController) -> Self {
406         ::std::convert::From::from(::std::clone::Clone::clone(value))
407     }
408 }
409 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for LowLevelDevicesController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>410     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
411         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
412     }
413 }
414 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &LowLevelDevicesController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>415     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
416         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
417     }
418 }
419 impl ::std::convert::From<LowLevelDevicesController> for ::windows::runtime::IInspectable {
from(value: LowLevelDevicesController) -> Self420     fn from(value: LowLevelDevicesController) -> Self {
421         value.0
422     }
423 }
424 impl ::std::convert::From<&LowLevelDevicesController> for ::windows::runtime::IInspectable {
from(value: &LowLevelDevicesController) -> Self425     fn from(value: &LowLevelDevicesController) -> Self {
426         value.0.clone()
427     }
428 }
429 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for LowLevelDevicesController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>430     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
431         ::windows::runtime::Param::Owned(self.0)
432     }
433 }
434 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a LowLevelDevicesController {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>435     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
436         ::windows::runtime::Param::Borrowed(&self.0)
437     }
438 }
439 unsafe impl ::std::marker::Send for LowLevelDevicesController {}
440 unsafe impl ::std::marker::Sync for LowLevelDevicesController {}
441