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