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_Gpio_Provider")]
3 pub mod Provider;
4 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
5 #[repr(C)]
6 #[cfg(feature = "Foundation")]
7 pub struct GpioChangeCount {
8     pub Count: u64,
9     pub RelativeTime: super::super::Foundation::TimeSpan,
10 }
11 #[cfg(feature = "Foundation")]
12 impl GpioChangeCount {}
13 #[cfg(feature = "Foundation")]
14 impl ::std::default::Default for GpioChangeCount {
15     fn default() -> Self {
16         unsafe { ::std::mem::zeroed() }
17     }
18 }
19 #[cfg(feature = "Foundation")]
20 impl ::std::fmt::Debug for GpioChangeCount {
21     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
Length()22         fmt.debug_struct("GpioChangeCount").field("Count", &self.Count).field("RelativeTime", &self.RelativeTime).finish()
23     }
24 }
25 #[cfg(feature = "Foundation")]
26 impl ::std::cmp::PartialEq for GpioChangeCount {
27     fn eq(&self, other: &Self) -> bool {
28         self.Count == other.Count && self.RelativeTime == other.RelativeTime
29     }
30 }
31 #[cfg(feature = "Foundation")]
Range()32 impl ::std::cmp::Eq for GpioChangeCount {}
33 #[cfg(feature = "Foundation")]
34 unsafe impl ::windows::runtime::Abi for GpioChangeCount {
35     type Abi = Self;
36     type DefaultType = Self;
RangeUsing(Allocator)37 }
38 #[cfg(feature = "Foundation")]
39 unsafe impl ::windows::runtime::RuntimeType for GpioChangeCount {
40     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"struct(Windows.Devices.Gpio.GpioChangeCount;u8;struct(Windows.Foundation.TimeSpan;i8))");
41 }
42 #[repr(transparent)]
43 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
EqualsUsing(Allocator, List)44 pub struct GpioChangeCounter(::windows::runtime::IInspectable);
45 impl GpioChangeCounter {
46     #[cfg(feature = "Foundation")]
47     pub fn Close(&self) -> ::windows::runtime::Result<()> {
48         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
49         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
Next()50     }
51     pub fn SetPolarity(&self, value: GpioChangePolarity) -> ::windows::runtime::Result<()> {
52         let this = self;
53         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
54     }
Item()55     pub fn Polarity(&self) -> ::windows::runtime::Result<GpioChangePolarity> {
56         let this = self;
57         unsafe {
58             let mut result__: GpioChangePolarity = ::std::mem::zeroed();
59             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioChangePolarity>(result__)
60         }
61     }
62     pub fn IsStarted(&self) -> ::windows::runtime::Result<bool> {
63         let this = self;
64         unsafe {
65             let mut result__: bool = ::std::mem::zeroed();
66             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
67         }
68     }
69     pub fn Start(&self) -> ::windows::runtime::Result<()> {
70         let this = self;
71         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this)).ok() }
72     }
73     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
74         let this = self;
75         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this)).ok() }
76     }
77     #[cfg(feature = "Foundation")]
78     pub fn Read(&self) -> ::windows::runtime::Result<GpioChangeCount> {
79         let this = self;
80         unsafe {
81             let mut result__: GpioChangeCount = ::std::mem::zeroed();
82             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioChangeCount>(result__)
83         }
84     }
85     #[cfg(feature = "Foundation")]
86     pub fn Reset(&self) -> ::windows::runtime::Result<GpioChangeCount> {
87         let this = self;
88         unsafe {
89             let mut result__: GpioChangeCount = ::std::mem::zeroed();
90             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioChangeCount>(result__)
91         }
92     }
93     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, GpioPin>>(pin: Param0) -> ::windows::runtime::Result<GpioChangeCounter> {
94         Self::IGpioChangeCounterFactory(|this| unsafe {
95             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
96             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), pin.into_param().abi(), &mut result__).from_abi::<GpioChangeCounter>(result__)
97         })
98     }
99     pub fn IGpioChangeCounterFactory<R, F: FnOnce(&IGpioChangeCounterFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
100         static mut SHARED: ::windows::runtime::FactoryCache<GpioChangeCounter, IGpioChangeCounterFactory> = ::windows::runtime::FactoryCache::new();
101         unsafe { SHARED.call(callback) }
102     }
103 }
104 unsafe impl ::windows::runtime::RuntimeType for GpioChangeCounter {
105     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Gpio.GpioChangeCounter;{cb5ec0de-6801-43ff-803d-4576628a8b26})");
106 }
107 unsafe impl ::windows::runtime::Interface for GpioChangeCounter {
108     type Vtable = IGpioChangeCounter_abi;
109     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3411984606, 26625, 17407, [128, 61, 69, 118, 98, 138, 139, 38]);
110 }
111 impl ::windows::runtime::RuntimeName for GpioChangeCounter {
112     const NAME: &'static str = "Windows.Devices.Gpio.GpioChangeCounter";
113 }
114 impl ::std::convert::From<GpioChangeCounter> for ::windows::runtime::IUnknown {
115     fn from(value: GpioChangeCounter) -> Self {
116         unsafe { ::std::mem::transmute(value) }
117     }
118 }
119 impl ::std::convert::From<&GpioChangeCounter> for ::windows::runtime::IUnknown {
120     fn from(value: &GpioChangeCounter) -> Self {
121         ::std::convert::From::from(::std::clone::Clone::clone(value))
122     }
123 }
124 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GpioChangeCounter {
125     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
126         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
127     }
128 }
129 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GpioChangeCounter {
130     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
131         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
132     }
133 }
134 impl ::std::convert::From<GpioChangeCounter> for ::windows::runtime::IInspectable {
135     fn from(value: GpioChangeCounter) -> Self {
136         value.0
137     }
138 }
139 impl ::std::convert::From<&GpioChangeCounter> for ::windows::runtime::IInspectable {
140     fn from(value: &GpioChangeCounter) -> Self {
141         value.0.clone()
142     }
143 }
144 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GpioChangeCounter {
145     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
146         ::windows::runtime::Param::Owned(self.0)
147     }
148 }
149 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GpioChangeCounter {
150     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
151         ::windows::runtime::Param::Borrowed(&self.0)
152     }
153 }
154 #[cfg(feature = "Foundation")]
155 impl ::std::convert::TryFrom<GpioChangeCounter> for super::super::Foundation::IClosable {
156     type Error = ::windows::runtime::Error;
157     fn try_from(value: GpioChangeCounter) -> ::windows::runtime::Result<Self> {
158         ::std::convert::TryFrom::try_from(&value)
159     }
160 }
161 #[cfg(feature = "Foundation")]
162 impl ::std::convert::TryFrom<&GpioChangeCounter> for super::super::Foundation::IClosable {
163     type Error = ::windows::runtime::Error;
164     fn try_from(value: &GpioChangeCounter) -> ::windows::runtime::Result<Self> {
165         ::windows::runtime::Interface::cast(value)
166     }
167 }
168 #[cfg(feature = "Foundation")]
169 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for GpioChangeCounter {
170     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
171         ::windows::runtime::IntoParam::into_param(&self)
172     }
173 }
174 #[cfg(feature = "Foundation")]
175 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &GpioChangeCounter {
176     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
177         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
178     }
179 }
180 unsafe impl ::std::marker::Send for GpioChangeCounter {}
181 unsafe impl ::std::marker::Sync for GpioChangeCounter {}
182 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
183 #[repr(transparent)]
184 pub struct GpioChangePolarity(pub i32);
185 impl GpioChangePolarity {
186     pub const Falling: GpioChangePolarity = GpioChangePolarity(0i32);
187     pub const Rising: GpioChangePolarity = GpioChangePolarity(1i32);
188     pub const Both: GpioChangePolarity = GpioChangePolarity(2i32);
189 }
190 impl ::std::convert::From<i32> for GpioChangePolarity {
191     fn from(value: i32) -> Self {
192         Self(value)
193     }
194 }
195 unsafe impl ::windows::runtime::Abi for GpioChangePolarity {
196     type Abi = Self;
197     type DefaultType = Self;
198 }
199 unsafe impl ::windows::runtime::RuntimeType for GpioChangePolarity {
200     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Gpio.GpioChangePolarity;i4)");
201 }
202 #[repr(transparent)]
203 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
204 pub struct GpioChangeReader(::windows::runtime::IInspectable);
205 impl GpioChangeReader {
206     #[cfg(feature = "Foundation")]
207     pub fn Close(&self) -> ::windows::runtime::Result<()> {
208         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
209         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
210     }
211     pub fn Capacity(&self) -> ::windows::runtime::Result<i32> {
212         let this = self;
213         unsafe {
214             let mut result__: i32 = ::std::mem::zeroed();
215             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
216         }
217     }
218     pub fn Length(&self) -> ::windows::runtime::Result<i32> {
219         let this = self;
220         unsafe {
221             let mut result__: i32 = ::std::mem::zeroed();
222             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
223         }
224     }
225     pub fn IsEmpty(&self) -> ::windows::runtime::Result<bool> {
226         let this = self;
227         unsafe {
228             let mut result__: bool = ::std::mem::zeroed();
229             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
230         }
231     }
232     pub fn IsOverflowed(&self) -> ::windows::runtime::Result<bool> {
233         let this = self;
234         unsafe {
235             let mut result__: bool = ::std::mem::zeroed();
236             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
237         }
238     }
239     pub fn SetPolarity(&self, value: GpioChangePolarity) -> ::windows::runtime::Result<()> {
240         let this = self;
241         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() }
242     }
243     pub fn Polarity(&self) -> ::windows::runtime::Result<GpioChangePolarity> {
244         let this = self;
245         unsafe {
246             let mut result__: GpioChangePolarity = ::std::mem::zeroed();
247             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioChangePolarity>(result__)
248         }
249     }
250     pub fn IsStarted(&self) -> ::windows::runtime::Result<bool> {
251         let this = self;
252         unsafe {
253             let mut result__: bool = ::std::mem::zeroed();
254             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
255         }
256     }
257     pub fn Start(&self) -> ::windows::runtime::Result<()> {
258         let this = self;
259         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this)).ok() }
260     }
261     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
262         let this = self;
263         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this)).ok() }
264     }
265     pub fn Clear(&self) -> ::windows::runtime::Result<()> {
266         let this = self;
267         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this)).ok() }
268     }
269     #[cfg(feature = "Foundation")]
270     pub fn GetNextItem(&self) -> ::windows::runtime::Result<GpioChangeRecord> {
271         let this = self;
272         unsafe {
273             let mut result__: GpioChangeRecord = ::std::mem::zeroed();
274             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioChangeRecord>(result__)
275         }
276     }
277     #[cfg(feature = "Foundation")]
278     pub fn PeekNextItem(&self) -> ::windows::runtime::Result<GpioChangeRecord> {
279         let this = self;
280         unsafe {
281             let mut result__: GpioChangeRecord = ::std::mem::zeroed();
282             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioChangeRecord>(result__)
283         }
284     }
285     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
286     pub fn GetAllItems(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<GpioChangeRecord>> {
287         let this = self;
288         unsafe {
289             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
290             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<GpioChangeRecord>>(result__)
291         }
292     }
293     #[cfg(feature = "Foundation")]
294     pub fn WaitForItemsAsync(&self, count: i32) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
295         let this = self;
296         unsafe {
297             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
298             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), count, &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
299         }
300     }
301     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, GpioPin>>(pin: Param0) -> ::windows::runtime::Result<GpioChangeReader> {
302         Self::IGpioChangeReaderFactory(|this| unsafe {
303             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
304             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), pin.into_param().abi(), &mut result__).from_abi::<GpioChangeReader>(result__)
305         })
306     }
307     pub fn CreateWithCapacity<'a, Param0: ::windows::runtime::IntoParam<'a, GpioPin>>(pin: Param0, mincapacity: i32) -> ::windows::runtime::Result<GpioChangeReader> {
308         Self::IGpioChangeReaderFactory(|this| unsafe {
309             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
310             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), pin.into_param().abi(), mincapacity, &mut result__).from_abi::<GpioChangeReader>(result__)
311         })
312     }
313     pub fn IGpioChangeReaderFactory<R, F: FnOnce(&IGpioChangeReaderFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
314         static mut SHARED: ::windows::runtime::FactoryCache<GpioChangeReader, IGpioChangeReaderFactory> = ::windows::runtime::FactoryCache::new();
315         unsafe { SHARED.call(callback) }
316     }
317 }
318 unsafe impl ::windows::runtime::RuntimeType for GpioChangeReader {
319     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Gpio.GpioChangeReader;{0abc885f-e031-48e8-8590-70de78363c6d})");
320 }
321 unsafe impl ::windows::runtime::Interface for GpioChangeReader {
322     type Vtable = IGpioChangeReader_abi;
323     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(180127839, 57393, 18664, [133, 144, 112, 222, 120, 54, 60, 109]);
324 }
325 impl ::windows::runtime::RuntimeName for GpioChangeReader {
326     const NAME: &'static str = "Windows.Devices.Gpio.GpioChangeReader";
327 }
328 impl ::std::convert::From<GpioChangeReader> for ::windows::runtime::IUnknown {
329     fn from(value: GpioChangeReader) -> Self {
330         unsafe { ::std::mem::transmute(value) }
331     }
332 }
333 impl ::std::convert::From<&GpioChangeReader> for ::windows::runtime::IUnknown {
334     fn from(value: &GpioChangeReader) -> Self {
335         ::std::convert::From::from(::std::clone::Clone::clone(value))
336     }
337 }
338 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GpioChangeReader {
339     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
340         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
341     }
342 }
343 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GpioChangeReader {
344     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
345         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
346     }
347 }
348 impl ::std::convert::From<GpioChangeReader> for ::windows::runtime::IInspectable {
349     fn from(value: GpioChangeReader) -> Self {
350         value.0
351     }
352 }
353 impl ::std::convert::From<&GpioChangeReader> for ::windows::runtime::IInspectable {
354     fn from(value: &GpioChangeReader) -> Self {
355         value.0.clone()
356     }
357 }
358 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GpioChangeReader {
359     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
360         ::windows::runtime::Param::Owned(self.0)
361     }
362 }
363 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GpioChangeReader {
364     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
365         ::windows::runtime::Param::Borrowed(&self.0)
366     }
367 }
368 #[cfg(feature = "Foundation")]
369 impl ::std::convert::TryFrom<GpioChangeReader> for super::super::Foundation::IClosable {
370     type Error = ::windows::runtime::Error;
371     fn try_from(value: GpioChangeReader) -> ::windows::runtime::Result<Self> {
372         ::std::convert::TryFrom::try_from(&value)
373     }
374 }
375 #[cfg(feature = "Foundation")]
376 impl ::std::convert::TryFrom<&GpioChangeReader> for super::super::Foundation::IClosable {
377     type Error = ::windows::runtime::Error;
378     fn try_from(value: &GpioChangeReader) -> ::windows::runtime::Result<Self> {
379         ::windows::runtime::Interface::cast(value)
380     }
381 }
382 #[cfg(feature = "Foundation")]
383 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for GpioChangeReader {
384     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
385         ::windows::runtime::IntoParam::into_param(&self)
386     }
387 }
388 #[cfg(feature = "Foundation")]
389 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &GpioChangeReader {
390     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
391         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
392     }
393 }
394 unsafe impl ::std::marker::Send for GpioChangeReader {}
395 unsafe impl ::std::marker::Sync for GpioChangeReader {}
396 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
397 #[repr(C)]
398 #[cfg(feature = "Foundation")]
399 pub struct GpioChangeRecord {
400     pub RelativeTime: super::super::Foundation::TimeSpan,
401     pub Edge: GpioPinEdge,
402 }
403 #[cfg(feature = "Foundation")]
404 impl GpioChangeRecord {}
405 #[cfg(feature = "Foundation")]
406 impl ::std::default::Default for GpioChangeRecord {
407     fn default() -> Self {
408         unsafe { ::std::mem::zeroed() }
409     }
410 }
411 #[cfg(feature = "Foundation")]
412 impl ::std::fmt::Debug for GpioChangeRecord {
413     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
414         fmt.debug_struct("GpioChangeRecord").field("RelativeTime", &self.RelativeTime).field("Edge", &self.Edge).finish()
415     }
416 }
417 #[cfg(feature = "Foundation")]
418 impl ::std::cmp::PartialEq for GpioChangeRecord {
419     fn eq(&self, other: &Self) -> bool {
420         self.RelativeTime == other.RelativeTime && self.Edge == other.Edge
421     }
422 }
423 #[cfg(feature = "Foundation")]
424 impl ::std::cmp::Eq for GpioChangeRecord {}
425 #[cfg(feature = "Foundation")]
426 unsafe impl ::windows::runtime::Abi for GpioChangeRecord {
427     type Abi = Self;
428     type DefaultType = Self;
429 }
430 #[cfg(feature = "Foundation")]
431 unsafe impl ::windows::runtime::RuntimeType for GpioChangeRecord {
432     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"struct(Windows.Devices.Gpio.GpioChangeRecord;struct(Windows.Foundation.TimeSpan;i8);enum(Windows.Devices.Gpio.GpioPinEdge;i4))");
433 }
434 #[repr(transparent)]
435 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
436 pub struct GpioController(::windows::runtime::IInspectable);
437 impl GpioController {
438     pub fn PinCount(&self) -> ::windows::runtime::Result<i32> {
439         let this = self;
440         unsafe {
441             let mut result__: i32 = ::std::mem::zeroed();
442             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
443         }
444     }
445     pub fn OpenPin(&self, pinnumber: i32) -> ::windows::runtime::Result<GpioPin> {
446         let this = self;
447         unsafe {
448             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
449             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), pinnumber, &mut result__).from_abi::<GpioPin>(result__)
450         }
451     }
452     pub fn OpenPinWithSharingMode(&self, pinnumber: i32, sharingmode: GpioSharingMode) -> ::windows::runtime::Result<GpioPin> {
453         let this = self;
454         unsafe {
455             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
456             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), pinnumber, sharingmode, &mut result__).from_abi::<GpioPin>(result__)
457         }
458     }
459     pub fn TryOpenPin(&self, pinnumber: i32, sharingmode: GpioSharingMode, pin: &mut ::std::option::Option<GpioPin>, openstatus: &mut GpioOpenStatus) -> ::windows::runtime::Result<bool> {
460         let this = self;
461         unsafe {
462             let mut result__: bool = ::std::mem::zeroed();
463             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), pinnumber, sharingmode, pin as *mut _ as _, openstatus, &mut result__).from_abi::<bool>(result__)
464         }
465     }
466     pub fn GetDefault() -> ::windows::runtime::Result<GpioController> {
467         Self::IGpioControllerStatics(|this| unsafe {
468             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
469             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioController>(result__)
470         })
471     }
472     #[cfg(all(feature = "Devices_Gpio_Provider", feature = "Foundation", feature = "Foundation_Collections"))]
473     pub fn GetControllersAsync<'a, Param0: ::windows::runtime::IntoParam<'a, Provider::IGpioProvider>>(provider: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<GpioController>>> {
474         Self::IGpioControllerStatics2(|this| unsafe {
475             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
476             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), provider.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<GpioController>>>(result__)
477         })
478     }
479     #[cfg(feature = "Foundation")]
480     pub fn GetDefaultAsync() -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<GpioController>> {
481         Self::IGpioControllerStatics2(|this| unsafe {
482             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
483             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<GpioController>>(result__)
484         })
485     }
486     pub fn IGpioControllerStatics<R, F: FnOnce(&IGpioControllerStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
487         static mut SHARED: ::windows::runtime::FactoryCache<GpioController, IGpioControllerStatics> = ::windows::runtime::FactoryCache::new();
488         unsafe { SHARED.call(callback) }
489     }
490     pub fn IGpioControllerStatics2<R, F: FnOnce(&IGpioControllerStatics2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
491         static mut SHARED: ::windows::runtime::FactoryCache<GpioController, IGpioControllerStatics2> = ::windows::runtime::FactoryCache::new();
492         unsafe { SHARED.call(callback) }
493     }
494 }
495 unsafe impl ::windows::runtime::RuntimeType for GpioController {
496     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Gpio.GpioController;{284012e3-7461-469c-a8bc-61d69d08a53c})");
497 }
498 unsafe impl ::windows::runtime::Interface for GpioController {
499     type Vtable = IGpioController_abi;
500     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(675287779, 29793, 18076, [168, 188, 97, 214, 157, 8, 165, 60]);
501 }
502 impl ::windows::runtime::RuntimeName for GpioController {
503     const NAME: &'static str = "Windows.Devices.Gpio.GpioController";
504 }
505 impl ::std::convert::From<GpioController> for ::windows::runtime::IUnknown {
506     fn from(value: GpioController) -> Self {
507         unsafe { ::std::mem::transmute(value) }
508     }
509 }
510 impl ::std::convert::From<&GpioController> for ::windows::runtime::IUnknown {
511     fn from(value: &GpioController) -> Self {
512         ::std::convert::From::from(::std::clone::Clone::clone(value))
513     }
514 }
515 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GpioController {
516     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
517         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
518     }
519 }
520 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GpioController {
521     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
522         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
523     }
524 }
525 impl ::std::convert::From<GpioController> for ::windows::runtime::IInspectable {
526     fn from(value: GpioController) -> Self {
527         value.0
528     }
529 }
530 impl ::std::convert::From<&GpioController> for ::windows::runtime::IInspectable {
531     fn from(value: &GpioController) -> Self {
532         value.0.clone()
533     }
534 }
535 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GpioController {
536     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
537         ::windows::runtime::Param::Owned(self.0)
538     }
539 }
540 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GpioController {
541     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
542         ::windows::runtime::Param::Borrowed(&self.0)
543     }
544 }
545 unsafe impl ::std::marker::Send for GpioController {}
546 unsafe impl ::std::marker::Sync for GpioController {}
547 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
548 #[repr(transparent)]
549 pub struct GpioOpenStatus(pub i32);
550 impl GpioOpenStatus {
551     pub const PinOpened: GpioOpenStatus = GpioOpenStatus(0i32);
552     pub const PinUnavailable: GpioOpenStatus = GpioOpenStatus(1i32);
553     pub const SharingViolation: GpioOpenStatus = GpioOpenStatus(2i32);
554     pub const MuxingConflict: GpioOpenStatus = GpioOpenStatus(3i32);
555     pub const UnknownError: GpioOpenStatus = GpioOpenStatus(4i32);
556 }
557 impl ::std::convert::From<i32> for GpioOpenStatus {
558     fn from(value: i32) -> Self {
559         Self(value)
560     }
561 }
562 unsafe impl ::windows::runtime::Abi for GpioOpenStatus {
563     type Abi = Self;
564     type DefaultType = Self;
565 }
566 unsafe impl ::windows::runtime::RuntimeType for GpioOpenStatus {
567     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Gpio.GpioOpenStatus;i4)");
568 }
569 #[repr(transparent)]
570 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
571 pub struct GpioPin(::windows::runtime::IInspectable);
572 impl GpioPin {
573     #[cfg(feature = "Foundation")]
574     pub fn ValueChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<GpioPin, GpioPinValueChangedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
575         let this = self;
576         unsafe {
577             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
578             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
579         }
580     }
581     #[cfg(feature = "Foundation")]
582     pub fn RemoveValueChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
583         let this = self;
584         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
585     }
586     #[cfg(feature = "Foundation")]
587     pub fn DebounceTimeout(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
588         let this = self;
589         unsafe {
590             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
591             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
592         }
593     }
594     #[cfg(feature = "Foundation")]
595     pub fn SetDebounceTimeout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
596         let this = self;
597         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
598     }
599     pub fn PinNumber(&self) -> ::windows::runtime::Result<i32> {
600         let this = self;
601         unsafe {
602             let mut result__: i32 = ::std::mem::zeroed();
603             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<i32>(result__)
604         }
605     }
606     pub fn SharingMode(&self) -> ::windows::runtime::Result<GpioSharingMode> {
607         let this = self;
608         unsafe {
609             let mut result__: GpioSharingMode = ::std::mem::zeroed();
610             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioSharingMode>(result__)
611         }
612     }
613     pub fn IsDriveModeSupported(&self, drivemode: GpioPinDriveMode) -> ::windows::runtime::Result<bool> {
614         let this = self;
615         unsafe {
616             let mut result__: bool = ::std::mem::zeroed();
617             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), drivemode, &mut result__).from_abi::<bool>(result__)
618         }
619     }
620     pub fn GetDriveMode(&self) -> ::windows::runtime::Result<GpioPinDriveMode> {
621         let this = self;
622         unsafe {
623             let mut result__: GpioPinDriveMode = ::std::mem::zeroed();
624             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioPinDriveMode>(result__)
625         }
626     }
627     pub fn SetDriveMode(&self, value: GpioPinDriveMode) -> ::windows::runtime::Result<()> {
628         let this = self;
629         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value).ok() }
630     }
631     pub fn Write(&self, value: GpioPinValue) -> ::windows::runtime::Result<()> {
632         let this = self;
633         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value).ok() }
634     }
635     pub fn Read(&self) -> ::windows::runtime::Result<GpioPinValue> {
636         let this = self;
637         unsafe {
638             let mut result__: GpioPinValue = ::std::mem::zeroed();
639             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioPinValue>(result__)
640         }
641     }
642     #[cfg(feature = "Foundation")]
643     pub fn Close(&self) -> ::windows::runtime::Result<()> {
644         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
645         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
646     }
647 }
648 unsafe impl ::windows::runtime::RuntimeType for GpioPin {
649     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Gpio.GpioPin;{11d9b087-afae-4790-9ee9-e0eac942d201})");
650 }
651 unsafe impl ::windows::runtime::Interface for GpioPin {
652     type Vtable = IGpioPin_abi;
653     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(299479175, 44974, 18320, [158, 233, 224, 234, 201, 66, 210, 1]);
654 }
655 impl ::windows::runtime::RuntimeName for GpioPin {
656     const NAME: &'static str = "Windows.Devices.Gpio.GpioPin";
657 }
658 impl ::std::convert::From<GpioPin> for ::windows::runtime::IUnknown {
659     fn from(value: GpioPin) -> Self {
660         unsafe { ::std::mem::transmute(value) }
661     }
662 }
663 impl ::std::convert::From<&GpioPin> for ::windows::runtime::IUnknown {
664     fn from(value: &GpioPin) -> Self {
665         ::std::convert::From::from(::std::clone::Clone::clone(value))
666     }
667 }
668 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GpioPin {
669     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
670         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
671     }
672 }
673 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GpioPin {
674     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
675         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
676     }
677 }
678 impl ::std::convert::From<GpioPin> for ::windows::runtime::IInspectable {
679     fn from(value: GpioPin) -> Self {
680         value.0
681     }
682 }
683 impl ::std::convert::From<&GpioPin> for ::windows::runtime::IInspectable {
684     fn from(value: &GpioPin) -> Self {
685         value.0.clone()
686     }
687 }
688 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GpioPin {
689     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
690         ::windows::runtime::Param::Owned(self.0)
691     }
692 }
693 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GpioPin {
694     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
695         ::windows::runtime::Param::Borrowed(&self.0)
696     }
697 }
698 #[cfg(feature = "Foundation")]
699 impl ::std::convert::TryFrom<GpioPin> for super::super::Foundation::IClosable {
700     type Error = ::windows::runtime::Error;
701     fn try_from(value: GpioPin) -> ::windows::runtime::Result<Self> {
702         ::std::convert::TryFrom::try_from(&value)
703     }
704 }
705 #[cfg(feature = "Foundation")]
706 impl ::std::convert::TryFrom<&GpioPin> for super::super::Foundation::IClosable {
707     type Error = ::windows::runtime::Error;
708     fn try_from(value: &GpioPin) -> ::windows::runtime::Result<Self> {
709         ::windows::runtime::Interface::cast(value)
710     }
711 }
712 #[cfg(feature = "Foundation")]
713 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for GpioPin {
714     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
715         ::windows::runtime::IntoParam::into_param(&self)
716     }
717 }
718 #[cfg(feature = "Foundation")]
719 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &GpioPin {
720     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
721         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
722     }
723 }
724 unsafe impl ::std::marker::Send for GpioPin {}
725 unsafe impl ::std::marker::Sync for GpioPin {}
726 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
727 #[repr(transparent)]
728 pub struct GpioPinDriveMode(pub i32);
729 impl GpioPinDriveMode {
730     pub const Input: GpioPinDriveMode = GpioPinDriveMode(0i32);
731     pub const Output: GpioPinDriveMode = GpioPinDriveMode(1i32);
732     pub const InputPullUp: GpioPinDriveMode = GpioPinDriveMode(2i32);
733     pub const InputPullDown: GpioPinDriveMode = GpioPinDriveMode(3i32);
734     pub const OutputOpenDrain: GpioPinDriveMode = GpioPinDriveMode(4i32);
735     pub const OutputOpenDrainPullUp: GpioPinDriveMode = GpioPinDriveMode(5i32);
736     pub const OutputOpenSource: GpioPinDriveMode = GpioPinDriveMode(6i32);
737     pub const OutputOpenSourcePullDown: GpioPinDriveMode = GpioPinDriveMode(7i32);
738 }
739 impl ::std::convert::From<i32> for GpioPinDriveMode {
740     fn from(value: i32) -> Self {
741         Self(value)
742     }
743 }
744 unsafe impl ::windows::runtime::Abi for GpioPinDriveMode {
745     type Abi = Self;
746     type DefaultType = Self;
747 }
748 unsafe impl ::windows::runtime::RuntimeType for GpioPinDriveMode {
749     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Gpio.GpioPinDriveMode;i4)");
750 }
751 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
752 #[repr(transparent)]
753 pub struct GpioPinEdge(pub i32);
754 impl GpioPinEdge {
755     pub const FallingEdge: GpioPinEdge = GpioPinEdge(0i32);
756     pub const RisingEdge: GpioPinEdge = GpioPinEdge(1i32);
757 }
758 impl ::std::convert::From<i32> for GpioPinEdge {
759     fn from(value: i32) -> Self {
760         Self(value)
761     }
762 }
763 unsafe impl ::windows::runtime::Abi for GpioPinEdge {
764     type Abi = Self;
765     type DefaultType = Self;
766 }
767 unsafe impl ::windows::runtime::RuntimeType for GpioPinEdge {
768     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Gpio.GpioPinEdge;i4)");
769 }
770 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
771 #[repr(transparent)]
772 pub struct GpioPinValue(pub i32);
773 impl GpioPinValue {
774     pub const Low: GpioPinValue = GpioPinValue(0i32);
775     pub const High: GpioPinValue = GpioPinValue(1i32);
776 }
777 impl ::std::convert::From<i32> for GpioPinValue {
778     fn from(value: i32) -> Self {
779         Self(value)
780     }
781 }
782 unsafe impl ::windows::runtime::Abi for GpioPinValue {
783     type Abi = Self;
784     type DefaultType = Self;
785 }
786 unsafe impl ::windows::runtime::RuntimeType for GpioPinValue {
787     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Gpio.GpioPinValue;i4)");
788 }
789 #[repr(transparent)]
790 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
791 pub struct GpioPinValueChangedEventArgs(::windows::runtime::IInspectable);
792 impl GpioPinValueChangedEventArgs {
793     pub fn Edge(&self) -> ::windows::runtime::Result<GpioPinEdge> {
794         let this = self;
795         unsafe {
796             let mut result__: GpioPinEdge = ::std::mem::zeroed();
797             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GpioPinEdge>(result__)
798         }
799     }
800 }
801 unsafe impl ::windows::runtime::RuntimeType for GpioPinValueChangedEventArgs {
802     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Gpio.GpioPinValueChangedEventArgs;{3137aae1-703d-4059-bd24-b5b25dffb84e})");
803 }
804 unsafe impl ::windows::runtime::Interface for GpioPinValueChangedEventArgs {
805     type Vtable = IGpioPinValueChangedEventArgs_abi;
806     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(825731809, 28733, 16473, [189, 36, 181, 178, 93, 255, 184, 78]);
807 }
808 impl ::windows::runtime::RuntimeName for GpioPinValueChangedEventArgs {
809     const NAME: &'static str = "Windows.Devices.Gpio.GpioPinValueChangedEventArgs";
810 }
811 impl ::std::convert::From<GpioPinValueChangedEventArgs> for ::windows::runtime::IUnknown {
812     fn from(value: GpioPinValueChangedEventArgs) -> Self {
813         unsafe { ::std::mem::transmute(value) }
814     }
815 }
816 impl ::std::convert::From<&GpioPinValueChangedEventArgs> for ::windows::runtime::IUnknown {
817     fn from(value: &GpioPinValueChangedEventArgs) -> Self {
818         ::std::convert::From::from(::std::clone::Clone::clone(value))
819     }
820 }
821 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GpioPinValueChangedEventArgs {
822     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
823         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
824     }
825 }
826 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GpioPinValueChangedEventArgs {
827     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
828         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
829     }
830 }
831 impl ::std::convert::From<GpioPinValueChangedEventArgs> for ::windows::runtime::IInspectable {
832     fn from(value: GpioPinValueChangedEventArgs) -> Self {
833         value.0
834     }
835 }
836 impl ::std::convert::From<&GpioPinValueChangedEventArgs> for ::windows::runtime::IInspectable {
837     fn from(value: &GpioPinValueChangedEventArgs) -> Self {
838         value.0.clone()
839     }
840 }
841 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GpioPinValueChangedEventArgs {
842     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
843         ::windows::runtime::Param::Owned(self.0)
844     }
845 }
846 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GpioPinValueChangedEventArgs {
847     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
848         ::windows::runtime::Param::Borrowed(&self.0)
849     }
850 }
851 unsafe impl ::std::marker::Send for GpioPinValueChangedEventArgs {}
852 unsafe impl ::std::marker::Sync for GpioPinValueChangedEventArgs {}
853 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
854 #[repr(transparent)]
855 pub struct GpioSharingMode(pub i32);
856 impl GpioSharingMode {
857     pub const Exclusive: GpioSharingMode = GpioSharingMode(0i32);
858     pub const SharedReadOnly: GpioSharingMode = GpioSharingMode(1i32);
859 }
860 impl ::std::convert::From<i32> for GpioSharingMode {
861     fn from(value: i32) -> Self {
862         Self(value)
863     }
864 }
865 unsafe impl ::windows::runtime::Abi for GpioSharingMode {
866     type Abi = Self;
867     type DefaultType = Self;
868 }
869 unsafe impl ::windows::runtime::RuntimeType for GpioSharingMode {
870     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Gpio.GpioSharingMode;i4)");
871 }
872 #[repr(transparent)]
873 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
874 #[doc(hidden)]
875 pub struct IGpioChangeCounter(::windows::runtime::IInspectable);
876 unsafe impl ::windows::runtime::Interface for IGpioChangeCounter {
877     type Vtable = IGpioChangeCounter_abi;
878     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3411984606, 26625, 17407, [128, 61, 69, 118, 98, 138, 139, 38]);
879 }
880 #[repr(C)]
881 #[doc(hidden)]
882 pub struct IGpioChangeCounter_abi(
883     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
884     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
885     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
886     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
887     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
889     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: GpioChangePolarity) -> ::windows::runtime::HRESULT,
890     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioChangePolarity) -> ::windows::runtime::HRESULT,
891     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
892     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
893     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
894     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioChangeCount) -> ::windows::runtime::HRESULT,
895     #[cfg(not(feature = "Foundation"))] usize,
896     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioChangeCount) -> ::windows::runtime::HRESULT,
897     #[cfg(not(feature = "Foundation"))] usize,
898 );
899 #[repr(transparent)]
900 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
901 #[doc(hidden)]
902 pub struct IGpioChangeCounterFactory(::windows::runtime::IInspectable);
903 unsafe impl ::windows::runtime::Interface for IGpioChangeCounterFactory {
904     type Vtable = IGpioChangeCounterFactory_abi;
905     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(343774390, 2718, 16652, [180, 250, 248, 159, 64, 82, 8, 77]);
906 }
907 #[repr(C)]
908 #[doc(hidden)]
909 pub struct IGpioChangeCounterFactory_abi(
910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
912     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
913     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
914     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
915     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
916     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pin: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
917 );
918 #[repr(transparent)]
919 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
920 #[doc(hidden)]
921 pub struct IGpioChangeReader(::windows::runtime::IInspectable);
922 unsafe impl ::windows::runtime::Interface for IGpioChangeReader {
923     type Vtable = IGpioChangeReader_abi;
924     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(180127839, 57393, 18664, [133, 144, 112, 222, 120, 54, 60, 109]);
925 }
926 #[repr(C)]
927 #[doc(hidden)]
928 pub struct IGpioChangeReader_abi(
929     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
935     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
936     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
937     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
938     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
939     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: GpioChangePolarity) -> ::windows::runtime::HRESULT,
940     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioChangePolarity) -> ::windows::runtime::HRESULT,
941     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
942     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
943     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
944     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
945     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioChangeRecord) -> ::windows::runtime::HRESULT,
946     #[cfg(not(feature = "Foundation"))] usize,
947     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioChangeRecord) -> ::windows::runtime::HRESULT,
948     #[cfg(not(feature = "Foundation"))] usize,
949     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
950     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
951     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: i32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
952     #[cfg(not(feature = "Foundation"))] usize,
953 );
954 #[repr(transparent)]
955 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
956 #[doc(hidden)]
957 pub struct IGpioChangeReaderFactory(::windows::runtime::IInspectable);
958 unsafe impl ::windows::runtime::Interface for IGpioChangeReaderFactory {
959     type Vtable = IGpioChangeReaderFactory_abi;
960     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2841218803, 14606, 17434, [157, 28, 232, 222, 11, 45, 240, 223]);
961 }
962 #[repr(C)]
963 #[doc(hidden)]
964 pub struct IGpioChangeReaderFactory_abi(
965     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
966     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
967     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
968     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
969     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
970     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
971     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pin: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
972     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pin: ::windows::runtime::RawPtr, mincapacity: i32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
973 );
974 #[repr(transparent)]
975 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
976 #[doc(hidden)]
977 pub struct IGpioController(::windows::runtime::IInspectable);
978 unsafe impl ::windows::runtime::Interface for IGpioController {
979     type Vtable = IGpioController_abi;
980     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(675287779, 29793, 18076, [168, 188, 97, 214, 157, 8, 165, 60]);
981 }
982 #[repr(C)]
983 #[doc(hidden)]
984 pub struct IGpioController_abi(
985     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
986     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
987     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
988     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
989     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
990     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
991     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
992     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pinnumber: i32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
993     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pinnumber: i32, sharingmode: GpioSharingMode, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
994     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pinnumber: i32, sharingmode: GpioSharingMode, pin: *mut ::windows::runtime::RawPtr, openstatus: *mut GpioOpenStatus, result__: *mut bool) -> ::windows::runtime::HRESULT,
995 );
996 #[repr(transparent)]
997 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
998 #[doc(hidden)]
999 pub struct IGpioControllerStatics(::windows::runtime::IInspectable);
1000 unsafe impl ::windows::runtime::Interface for IGpioControllerStatics {
1001     type Vtable = IGpioControllerStatics_abi;
1002     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(785839150, 31479, 16662, [149, 51, 196, 61, 153, 161, 251, 100]);
1003 }
1004 #[repr(C)]
1005 #[doc(hidden)]
1006 pub struct IGpioControllerStatics_abi(
1007     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1008     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1009     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1010     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1011     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1012     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1013     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1014 );
1015 #[repr(transparent)]
1016 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1017 #[doc(hidden)]
1018 pub struct IGpioControllerStatics2(::windows::runtime::IInspectable);
1019 unsafe impl ::windows::runtime::Interface for IGpioControllerStatics2 {
1020     type Vtable = IGpioControllerStatics2_abi;
1021     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2435546400, 27812, 16646, [163, 115, 255, 253, 52, 107, 14, 91]);
1022 }
1023 #[repr(C)]
1024 #[doc(hidden)]
1025 pub struct IGpioControllerStatics2_abi(
1026     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1027     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1028     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1029     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1030     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1031     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1032     #[cfg(all(feature = "Devices_Gpio_Provider", feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, provider: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1033     #[cfg(not(all(feature = "Devices_Gpio_Provider", feature = "Foundation", feature = "Foundation_Collections")))] usize,
1034     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1035     #[cfg(not(feature = "Foundation"))] usize,
1036 );
1037 #[repr(transparent)]
1038 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1039 #[doc(hidden)]
1040 pub struct IGpioPin(::windows::runtime::IInspectable);
1041 unsafe impl ::windows::runtime::Interface for IGpioPin {
1042     type Vtable = IGpioPin_abi;
1043     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(299479175, 44974, 18320, [158, 233, 224, 234, 201, 66, 210, 1]);
1044 }
1045 #[repr(C)]
1046 #[doc(hidden)]
1047 pub struct IGpioPin_abi(
1048     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1049     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1050     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1051     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1052     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1053     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1054     #[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,
1055     #[cfg(not(feature = "Foundation"))] usize,
1056     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
1057     #[cfg(not(feature = "Foundation"))] usize,
1058     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
1059     #[cfg(not(feature = "Foundation"))] usize,
1060     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
1061     #[cfg(not(feature = "Foundation"))] usize,
1062     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut i32) -> ::windows::runtime::HRESULT,
1063     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioSharingMode) -> ::windows::runtime::HRESULT,
1064     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, drivemode: GpioPinDriveMode, result__: *mut bool) -> ::windows::runtime::HRESULT,
1065     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioPinDriveMode) -> ::windows::runtime::HRESULT,
1066     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: GpioPinDriveMode) -> ::windows::runtime::HRESULT,
1067     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: GpioPinValue) -> ::windows::runtime::HRESULT,
1068     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioPinValue) -> ::windows::runtime::HRESULT,
1069 );
1070 #[repr(transparent)]
1071 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1072 #[doc(hidden)]
1073 pub struct IGpioPinValueChangedEventArgs(::windows::runtime::IInspectable);
1074 unsafe impl ::windows::runtime::Interface for IGpioPinValueChangedEventArgs {
1075     type Vtable = IGpioPinValueChangedEventArgs_abi;
1076     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(825731809, 28733, 16473, [189, 36, 181, 178, 93, 255, 184, 78]);
1077 }
1078 #[repr(C)]
1079 #[doc(hidden)]
1080 pub struct IGpioPinValueChangedEventArgs_abi(
1081     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1082     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1083     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1084     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1085     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1086     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1087     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GpioPinEdge) -> ::windows::runtime::HRESULT,
1088 );
1089