1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[repr(transparent)]
3 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4 pub struct AttributedNetworkUsage(::windows::runtime::IInspectable);
5 impl AttributedNetworkUsage {
BytesSent(&self) -> ::windows::runtime::Result<u64>6     pub fn BytesSent(&self) -> ::windows::runtime::Result<u64> {
7         let this = self;
8         unsafe {
9             let mut result__: u64 = ::std::mem::zeroed();
10             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
11         }
12     }
BytesReceived(&self) -> ::windows::runtime::Result<u64>13     pub fn BytesReceived(&self) -> ::windows::runtime::Result<u64> {
14         let this = self;
15         unsafe {
16             let mut result__: u64 = ::std::mem::zeroed();
17             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
18         }
19     }
AttributionId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>20     pub fn AttributionId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
21         let this = self;
22         unsafe {
23             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
24             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
25         }
26     }
AttributionName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>27     pub fn AttributionName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
28         let this = self;
29         unsafe {
30             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
31             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
32         }
33     }
34     #[cfg(feature = "Storage_Streams")]
AttributionThumbnail(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IRandomAccessStreamReference>35     pub fn AttributionThumbnail(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IRandomAccessStreamReference> {
36         let this = self;
37         unsafe {
38             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
39             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IRandomAccessStreamReference>(result__)
40         }
41     }
42 }
43 unsafe impl ::windows::runtime::RuntimeType for AttributedNetworkUsage {
44     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.AttributedNetworkUsage;{f769b039-eca2-45eb-ade1-b0368b756c49})");
45 }
46 unsafe impl ::windows::runtime::Interface for AttributedNetworkUsage {
47     type Vtable = IAttributedNetworkUsage_abi;
48     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4150898745, 60578, 17899, [173, 225, 176, 54, 139, 117, 108, 73]);
49 }
50 impl ::windows::runtime::RuntimeName for AttributedNetworkUsage {
51     const NAME: &'static str = "Windows.Networking.Connectivity.AttributedNetworkUsage";
52 }
53 impl ::std::convert::From<AttributedNetworkUsage> for ::windows::runtime::IUnknown {
from(value: AttributedNetworkUsage) -> Self54     fn from(value: AttributedNetworkUsage) -> Self {
55         unsafe { ::std::mem::transmute(value) }
56     }
57 }
58 impl ::std::convert::From<&AttributedNetworkUsage> for ::windows::runtime::IUnknown {
from(value: &AttributedNetworkUsage) -> Self59     fn from(value: &AttributedNetworkUsage) -> Self {
60         ::std::convert::From::from(::std::clone::Clone::clone(value))
61     }
62 }
63 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for AttributedNetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>64     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
65         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
66     }
67 }
68 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &AttributedNetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>69     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
70         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
71     }
72 }
73 impl ::std::convert::From<AttributedNetworkUsage> for ::windows::runtime::IInspectable {
from(value: AttributedNetworkUsage) -> Self74     fn from(value: AttributedNetworkUsage) -> Self {
75         value.0
76     }
77 }
78 impl ::std::convert::From<&AttributedNetworkUsage> for ::windows::runtime::IInspectable {
from(value: &AttributedNetworkUsage) -> Self79     fn from(value: &AttributedNetworkUsage) -> Self {
80         value.0.clone()
81     }
82 }
83 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for AttributedNetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>84     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
85         ::windows::runtime::Param::Owned(self.0)
86     }
87 }
88 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a AttributedNetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>89     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
90         ::windows::runtime::Param::Borrowed(&self.0)
91     }
92 }
93 unsafe impl ::std::marker::Send for AttributedNetworkUsage {}
94 unsafe impl ::std::marker::Sync for AttributedNetworkUsage {}
95 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
96 #[repr(transparent)]
97 pub struct CellularApnAuthenticationType(pub i32);
98 impl CellularApnAuthenticationType {
99     pub const None: CellularApnAuthenticationType = CellularApnAuthenticationType(0i32);
100     pub const Pap: CellularApnAuthenticationType = CellularApnAuthenticationType(1i32);
101     pub const Chap: CellularApnAuthenticationType = CellularApnAuthenticationType(2i32);
102     pub const Mschapv2: CellularApnAuthenticationType = CellularApnAuthenticationType(3i32);
103 }
104 impl ::std::convert::From<i32> for CellularApnAuthenticationType {
from(value: i32) -> Self105     fn from(value: i32) -> Self {
106         Self(value)
107     }
108 }
109 unsafe impl ::windows::runtime::Abi for CellularApnAuthenticationType {
110     type Abi = Self;
111     type DefaultType = Self;
112 }
113 unsafe impl ::windows::runtime::RuntimeType for CellularApnAuthenticationType {
114     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.CellularApnAuthenticationType;i4)");
115 }
116 #[repr(transparent)]
117 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
118 pub struct CellularApnContext(::windows::runtime::IInspectable);
119 impl CellularApnContext {
new() -> ::windows::runtime::Result<Self>120     pub fn new() -> ::windows::runtime::Result<Self> {
121         Self::IActivationFactory(|f| f.activate_instance::<Self>())
122     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>123     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
124         static mut SHARED: ::windows::runtime::FactoryCache<CellularApnContext, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
125         unsafe { SHARED.call(callback) }
126     }
ProviderId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>127     pub fn ProviderId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
128         let this = self;
129         unsafe {
130             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
131             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
132         }
133     }
SetProviderId<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>134     pub fn SetProviderId<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
135         let this = self;
136         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
137     }
AccessPointName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>138     pub fn AccessPointName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
139         let this = self;
140         unsafe {
141             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
142             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
143         }
144     }
SetAccessPointName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>145     pub fn SetAccessPointName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
146         let this = self;
147         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
148     }
UserName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>149     pub fn UserName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
150         let this = self;
151         unsafe {
152             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
153             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
154         }
155     }
SetUserName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>156     pub fn SetUserName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
157         let this = self;
158         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
159     }
Password(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>160     pub fn Password(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
161         let this = self;
162         unsafe {
163             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
164             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
165         }
166     }
SetPassword<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>167     pub fn SetPassword<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
168         let this = self;
169         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
170     }
IsCompressionEnabled(&self) -> ::windows::runtime::Result<bool>171     pub fn IsCompressionEnabled(&self) -> ::windows::runtime::Result<bool> {
172         let this = self;
173         unsafe {
174             let mut result__: bool = ::std::mem::zeroed();
175             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
176         }
177     }
SetIsCompressionEnabled(&self, value: bool) -> ::windows::runtime::Result<()>178     pub fn SetIsCompressionEnabled(&self, value: bool) -> ::windows::runtime::Result<()> {
179         let this = self;
180         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value).ok() }
181     }
AuthenticationType(&self) -> ::windows::runtime::Result<CellularApnAuthenticationType>182     pub fn AuthenticationType(&self) -> ::windows::runtime::Result<CellularApnAuthenticationType> {
183         let this = self;
184         unsafe {
185             let mut result__: CellularApnAuthenticationType = ::std::mem::zeroed();
186             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<CellularApnAuthenticationType>(result__)
187         }
188     }
SetAuthenticationType(&self, value: CellularApnAuthenticationType) -> ::windows::runtime::Result<()>189     pub fn SetAuthenticationType(&self, value: CellularApnAuthenticationType) -> ::windows::runtime::Result<()> {
190         let this = self;
191         unsafe { (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), value).ok() }
192     }
ProfileName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>193     pub fn ProfileName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
194         let this = &::windows::runtime::Interface::cast::<ICellularApnContext2>(self)?;
195         unsafe {
196             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
197             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
198         }
199     }
SetProfileName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>200     pub fn SetProfileName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
201         let this = &::windows::runtime::Interface::cast::<ICellularApnContext2>(self)?;
202         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
203     }
204 }
205 unsafe impl ::windows::runtime::RuntimeType for CellularApnContext {
206     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.CellularApnContext;{6fa529f4-effd-4542-9ab2-705bbf94943a})");
207 }
208 unsafe impl ::windows::runtime::Interface for CellularApnContext {
209     type Vtable = ICellularApnContext_abi;
210     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1873095156, 61437, 17730, [154, 178, 112, 91, 191, 148, 148, 58]);
211 }
212 impl ::windows::runtime::RuntimeName for CellularApnContext {
213     const NAME: &'static str = "Windows.Networking.Connectivity.CellularApnContext";
214 }
215 impl ::std::convert::From<CellularApnContext> for ::windows::runtime::IUnknown {
from(value: CellularApnContext) -> Self216     fn from(value: CellularApnContext) -> Self {
217         unsafe { ::std::mem::transmute(value) }
218     }
219 }
220 impl ::std::convert::From<&CellularApnContext> for ::windows::runtime::IUnknown {
from(value: &CellularApnContext) -> Self221     fn from(value: &CellularApnContext) -> Self {
222         ::std::convert::From::from(::std::clone::Clone::clone(value))
223     }
224 }
225 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CellularApnContext {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>226     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
227         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
228     }
229 }
230 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CellularApnContext {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>231     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
232         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
233     }
234 }
235 impl ::std::convert::From<CellularApnContext> for ::windows::runtime::IInspectable {
from(value: CellularApnContext) -> Self236     fn from(value: CellularApnContext) -> Self {
237         value.0
238     }
239 }
240 impl ::std::convert::From<&CellularApnContext> for ::windows::runtime::IInspectable {
from(value: &CellularApnContext) -> Self241     fn from(value: &CellularApnContext) -> Self {
242         value.0.clone()
243     }
244 }
245 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CellularApnContext {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>246     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
247         ::windows::runtime::Param::Owned(self.0)
248     }
249 }
250 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CellularApnContext {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>251     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
252         ::windows::runtime::Param::Borrowed(&self.0)
253     }
254 }
255 unsafe impl ::std::marker::Send for CellularApnContext {}
256 unsafe impl ::std::marker::Sync for CellularApnContext {}
257 #[repr(transparent)]
258 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
259 pub struct ConnectionCost(::windows::runtime::IInspectable);
260 impl ConnectionCost {
NetworkCostType(&self) -> ::windows::runtime::Result<NetworkCostType>261     pub fn NetworkCostType(&self) -> ::windows::runtime::Result<NetworkCostType> {
262         let this = self;
263         unsafe {
264             let mut result__: NetworkCostType = ::std::mem::zeroed();
265             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkCostType>(result__)
266         }
267     }
Roaming(&self) -> ::windows::runtime::Result<bool>268     pub fn Roaming(&self) -> ::windows::runtime::Result<bool> {
269         let this = self;
270         unsafe {
271             let mut result__: bool = ::std::mem::zeroed();
272             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
273         }
274     }
OverDataLimit(&self) -> ::windows::runtime::Result<bool>275     pub fn OverDataLimit(&self) -> ::windows::runtime::Result<bool> {
276         let this = self;
277         unsafe {
278             let mut result__: bool = ::std::mem::zeroed();
279             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
280         }
281     }
ApproachingDataLimit(&self) -> ::windows::runtime::Result<bool>282     pub fn ApproachingDataLimit(&self) -> ::windows::runtime::Result<bool> {
283         let this = self;
284         unsafe {
285             let mut result__: bool = ::std::mem::zeroed();
286             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
287         }
288     }
BackgroundDataUsageRestricted(&self) -> ::windows::runtime::Result<bool>289     pub fn BackgroundDataUsageRestricted(&self) -> ::windows::runtime::Result<bool> {
290         let this = &::windows::runtime::Interface::cast::<IConnectionCost2>(self)?;
291         unsafe {
292             let mut result__: bool = ::std::mem::zeroed();
293             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
294         }
295     }
296 }
297 unsafe impl ::windows::runtime::RuntimeType for ConnectionCost {
298     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.ConnectionCost;{bad7d829-3416-4b10-a202-bac0b075bdae})");
299 }
300 unsafe impl ::windows::runtime::Interface for ConnectionCost {
301     type Vtable = IConnectionCost_abi;
302     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3134707753, 13334, 19216, [162, 2, 186, 192, 176, 117, 189, 174]);
303 }
304 impl ::windows::runtime::RuntimeName for ConnectionCost {
305     const NAME: &'static str = "Windows.Networking.Connectivity.ConnectionCost";
306 }
307 impl ::std::convert::From<ConnectionCost> for ::windows::runtime::IUnknown {
from(value: ConnectionCost) -> Self308     fn from(value: ConnectionCost) -> Self {
309         unsafe { ::std::mem::transmute(value) }
310     }
311 }
312 impl ::std::convert::From<&ConnectionCost> for ::windows::runtime::IUnknown {
from(value: &ConnectionCost) -> Self313     fn from(value: &ConnectionCost) -> Self {
314         ::std::convert::From::from(::std::clone::Clone::clone(value))
315     }
316 }
317 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ConnectionCost {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>318     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
319         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
320     }
321 }
322 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ConnectionCost {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>323     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
324         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
325     }
326 }
327 impl ::std::convert::From<ConnectionCost> for ::windows::runtime::IInspectable {
from(value: ConnectionCost) -> Self328     fn from(value: ConnectionCost) -> Self {
329         value.0
330     }
331 }
332 impl ::std::convert::From<&ConnectionCost> for ::windows::runtime::IInspectable {
from(value: &ConnectionCost) -> Self333     fn from(value: &ConnectionCost) -> Self {
334         value.0.clone()
335     }
336 }
337 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ConnectionCost {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>338     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
339         ::windows::runtime::Param::Owned(self.0)
340     }
341 }
342 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ConnectionCost {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>343     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
344         ::windows::runtime::Param::Borrowed(&self.0)
345     }
346 }
347 unsafe impl ::std::marker::Send for ConnectionCost {}
348 unsafe impl ::std::marker::Sync for ConnectionCost {}
349 #[repr(transparent)]
350 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
351 pub struct ConnectionProfile(::windows::runtime::IInspectable);
352 impl ConnectionProfile {
ProfileName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>353     pub fn ProfileName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
354         let this = self;
355         unsafe {
356             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
357             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
358         }
359     }
GetNetworkConnectivityLevel(&self) -> ::windows::runtime::Result<NetworkConnectivityLevel>360     pub fn GetNetworkConnectivityLevel(&self) -> ::windows::runtime::Result<NetworkConnectivityLevel> {
361         let this = self;
362         unsafe {
363             let mut result__: NetworkConnectivityLevel = ::std::mem::zeroed();
364             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkConnectivityLevel>(result__)
365         }
366     }
367     #[cfg(feature = "Foundation_Collections")]
GetNetworkNames(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<::windows::runtime::HSTRING>>368     pub fn GetNetworkNames(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<::windows::runtime::HSTRING>> {
369         let this = self;
370         unsafe {
371             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
372             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<::windows::runtime::HSTRING>>(result__)
373         }
374     }
GetConnectionCost(&self) -> ::windows::runtime::Result<ConnectionCost>375     pub fn GetConnectionCost(&self) -> ::windows::runtime::Result<ConnectionCost> {
376         let this = self;
377         unsafe {
378             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
379             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ConnectionCost>(result__)
380         }
381     }
GetDataPlanStatus(&self) -> ::windows::runtime::Result<DataPlanStatus>382     pub fn GetDataPlanStatus(&self) -> ::windows::runtime::Result<DataPlanStatus> {
383         let this = self;
384         unsafe {
385             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
386             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<DataPlanStatus>(result__)
387         }
388     }
NetworkAdapter(&self) -> ::windows::runtime::Result<NetworkAdapter>389     pub fn NetworkAdapter(&self) -> ::windows::runtime::Result<NetworkAdapter> {
390         let this = self;
391         unsafe {
392             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
393             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkAdapter>(result__)
394         }
395     }
396     #[cfg(feature = "deprecated")]
397     #[cfg(feature = "Foundation")]
GetLocalUsage<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(&self, starttime: Param0, endtime: Param1) -> ::windows::runtime::Result<DataUsage>398     pub fn GetLocalUsage<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(&self, starttime: Param0, endtime: Param1) -> ::windows::runtime::Result<DataUsage> {
399         let this = self;
400         unsafe {
401             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
402             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), starttime.into_param().abi(), endtime.into_param().abi(), &mut result__).from_abi::<DataUsage>(result__)
403         }
404     }
405     #[cfg(feature = "deprecated")]
406     #[cfg(feature = "Foundation")]
GetLocalUsagePerRoamingStates<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(&self, starttime: Param0, endtime: Param1, states: RoamingStates) -> ::windows::runtime::Result<DataUsage>407     pub fn GetLocalUsagePerRoamingStates<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(&self, starttime: Param0, endtime: Param1, states: RoamingStates) -> ::windows::runtime::Result<DataUsage> {
408         let this = self;
409         unsafe {
410             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
411             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), starttime.into_param().abi(), endtime.into_param().abi(), states, &mut result__).from_abi::<DataUsage>(result__)
412         }
413     }
NetworkSecuritySettings(&self) -> ::windows::runtime::Result<NetworkSecuritySettings>414     pub fn NetworkSecuritySettings(&self) -> ::windows::runtime::Result<NetworkSecuritySettings> {
415         let this = self;
416         unsafe {
417             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
418             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkSecuritySettings>(result__)
419         }
420     }
IsWwanConnectionProfile(&self) -> ::windows::runtime::Result<bool>421     pub fn IsWwanConnectionProfile(&self) -> ::windows::runtime::Result<bool> {
422         let this = &::windows::runtime::Interface::cast::<IConnectionProfile2>(self)?;
423         unsafe {
424             let mut result__: bool = ::std::mem::zeroed();
425             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
426         }
427     }
IsWlanConnectionProfile(&self) -> ::windows::runtime::Result<bool>428     pub fn IsWlanConnectionProfile(&self) -> ::windows::runtime::Result<bool> {
429         let this = &::windows::runtime::Interface::cast::<IConnectionProfile2>(self)?;
430         unsafe {
431             let mut result__: bool = ::std::mem::zeroed();
432             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
433         }
434     }
WwanConnectionProfileDetails(&self) -> ::windows::runtime::Result<WwanConnectionProfileDetails>435     pub fn WwanConnectionProfileDetails(&self) -> ::windows::runtime::Result<WwanConnectionProfileDetails> {
436         let this = &::windows::runtime::Interface::cast::<IConnectionProfile2>(self)?;
437         unsafe {
438             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
439             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<WwanConnectionProfileDetails>(result__)
440         }
441     }
WlanConnectionProfileDetails(&self) -> ::windows::runtime::Result<WlanConnectionProfileDetails>442     pub fn WlanConnectionProfileDetails(&self) -> ::windows::runtime::Result<WlanConnectionProfileDetails> {
443         let this = &::windows::runtime::Interface::cast::<IConnectionProfile2>(self)?;
444         unsafe {
445             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
446             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<WlanConnectionProfileDetails>(result__)
447         }
448     }
449     #[cfg(feature = "Foundation")]
ServiceProviderGuid(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<::windows::runtime::GUID>>450     pub fn ServiceProviderGuid(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<::windows::runtime::GUID>> {
451         let this = &::windows::runtime::Interface::cast::<IConnectionProfile2>(self)?;
452         unsafe {
453             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
454             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<::windows::runtime::GUID>>(result__)
455         }
456     }
457     #[cfg(feature = "Foundation")]
GetSignalBars(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u8>>458     pub fn GetSignalBars(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u8>> {
459         let this = &::windows::runtime::Interface::cast::<IConnectionProfile2>(self)?;
460         unsafe {
461             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
462             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u8>>(result__)
463         }
464     }
GetDomainConnectivityLevel(&self) -> ::windows::runtime::Result<DomainConnectivityLevel>465     pub fn GetDomainConnectivityLevel(&self) -> ::windows::runtime::Result<DomainConnectivityLevel> {
466         let this = &::windows::runtime::Interface::cast::<IConnectionProfile2>(self)?;
467         unsafe {
468             let mut result__: DomainConnectivityLevel = ::std::mem::zeroed();
469             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<DomainConnectivityLevel>(result__)
470         }
471     }
472     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetNetworkUsageAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param3: ::windows::runtime::IntoParam<'a, NetworkUsageStates>>(&self, starttime: Param0, endtime: Param1, granularity: DataUsageGranularity, states: Param3) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<NetworkUsage>>>473     pub fn GetNetworkUsageAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param3: ::windows::runtime::IntoParam<'a, NetworkUsageStates>>(&self, starttime: Param0, endtime: Param1, granularity: DataUsageGranularity, states: Param3) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<NetworkUsage>>> {
474         let this = &::windows::runtime::Interface::cast::<IConnectionProfile2>(self)?;
475         unsafe {
476             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
477             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), starttime.into_param().abi(), endtime.into_param().abi(), granularity, states.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<NetworkUsage>>>(result__)
478         }
479     }
480     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetConnectivityIntervalsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param2: ::windows::runtime::IntoParam<'a, NetworkUsageStates>>(&self, starttime: Param0, endtime: Param1, states: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<ConnectivityInterval>>>481     pub fn GetConnectivityIntervalsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param2: ::windows::runtime::IntoParam<'a, NetworkUsageStates>>(&self, starttime: Param0, endtime: Param1, states: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<ConnectivityInterval>>> {
482         let this = &::windows::runtime::Interface::cast::<IConnectionProfile2>(self)?;
483         unsafe {
484             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
485             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), starttime.into_param().abi(), endtime.into_param().abi(), states.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<ConnectivityInterval>>>(result__)
486         }
487     }
488     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetAttributedNetworkUsageAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param2: ::windows::runtime::IntoParam<'a, NetworkUsageStates>>(&self, starttime: Param0, endtime: Param1, states: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<AttributedNetworkUsage>>>489     pub fn GetAttributedNetworkUsageAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param2: ::windows::runtime::IntoParam<'a, NetworkUsageStates>>(&self, starttime: Param0, endtime: Param1, states: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<AttributedNetworkUsage>>> {
490         let this = &::windows::runtime::Interface::cast::<IConnectionProfile3>(self)?;
491         unsafe {
492             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
493             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), starttime.into_param().abi(), endtime.into_param().abi(), states.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<AttributedNetworkUsage>>>(result__)
494         }
495     }
496     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetProviderNetworkUsageAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param2: ::windows::runtime::IntoParam<'a, NetworkUsageStates>>(&self, starttime: Param0, endtime: Param1, states: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<ProviderNetworkUsage>>>497     pub fn GetProviderNetworkUsageAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param2: ::windows::runtime::IntoParam<'a, NetworkUsageStates>>(&self, starttime: Param0, endtime: Param1, states: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<ProviderNetworkUsage>>> {
498         let this = &::windows::runtime::Interface::cast::<IConnectionProfile4>(self)?;
499         unsafe {
500             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
501             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), starttime.into_param().abi(), endtime.into_param().abi(), states.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<ProviderNetworkUsage>>>(result__)
502         }
503     }
CanDelete(&self) -> ::windows::runtime::Result<bool>504     pub fn CanDelete(&self) -> ::windows::runtime::Result<bool> {
505         let this = &::windows::runtime::Interface::cast::<IConnectionProfile5>(self)?;
506         unsafe {
507             let mut result__: bool = ::std::mem::zeroed();
508             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
509         }
510     }
511     #[cfg(feature = "Foundation")]
TryDeleteAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ConnectionProfileDeleteStatus>>512     pub fn TryDeleteAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ConnectionProfileDeleteStatus>> {
513         let this = &::windows::runtime::Interface::cast::<IConnectionProfile5>(self)?;
514         unsafe {
515             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
516             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<ConnectionProfileDeleteStatus>>(result__)
517         }
518     }
519 }
520 unsafe impl ::windows::runtime::RuntimeType for ConnectionProfile {
521     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.ConnectionProfile;{71ba143c-598e-49d0-84eb-8febaedcc195})");
522 }
523 unsafe impl ::windows::runtime::Interface for ConnectionProfile {
524     type Vtable = IConnectionProfile_abi;
525     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1908020284, 22926, 18896, [132, 235, 143, 235, 174, 220, 193, 149]);
526 }
527 impl ::windows::runtime::RuntimeName for ConnectionProfile {
528     const NAME: &'static str = "Windows.Networking.Connectivity.ConnectionProfile";
529 }
530 impl ::std::convert::From<ConnectionProfile> for ::windows::runtime::IUnknown {
from(value: ConnectionProfile) -> Self531     fn from(value: ConnectionProfile) -> Self {
532         unsafe { ::std::mem::transmute(value) }
533     }
534 }
535 impl ::std::convert::From<&ConnectionProfile> for ::windows::runtime::IUnknown {
from(value: &ConnectionProfile) -> Self536     fn from(value: &ConnectionProfile) -> Self {
537         ::std::convert::From::from(::std::clone::Clone::clone(value))
538     }
539 }
540 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ConnectionProfile {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>541     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
542         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
543     }
544 }
545 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ConnectionProfile {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>546     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
547         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
548     }
549 }
550 impl ::std::convert::From<ConnectionProfile> for ::windows::runtime::IInspectable {
from(value: ConnectionProfile) -> Self551     fn from(value: ConnectionProfile) -> Self {
552         value.0
553     }
554 }
555 impl ::std::convert::From<&ConnectionProfile> for ::windows::runtime::IInspectable {
from(value: &ConnectionProfile) -> Self556     fn from(value: &ConnectionProfile) -> Self {
557         value.0.clone()
558     }
559 }
560 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ConnectionProfile {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>561     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
562         ::windows::runtime::Param::Owned(self.0)
563     }
564 }
565 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ConnectionProfile {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>566     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
567         ::windows::runtime::Param::Borrowed(&self.0)
568     }
569 }
570 unsafe impl ::std::marker::Send for ConnectionProfile {}
571 unsafe impl ::std::marker::Sync for ConnectionProfile {}
572 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
573 #[repr(transparent)]
574 pub struct ConnectionProfileDeleteStatus(pub i32);
575 impl ConnectionProfileDeleteStatus {
576     pub const Success: ConnectionProfileDeleteStatus = ConnectionProfileDeleteStatus(0i32);
577     pub const DeniedByUser: ConnectionProfileDeleteStatus = ConnectionProfileDeleteStatus(1i32);
578     pub const DeniedBySystem: ConnectionProfileDeleteStatus = ConnectionProfileDeleteStatus(2i32);
579     pub const UnknownError: ConnectionProfileDeleteStatus = ConnectionProfileDeleteStatus(3i32);
580 }
581 impl ::std::convert::From<i32> for ConnectionProfileDeleteStatus {
from(value: i32) -> Self582     fn from(value: i32) -> Self {
583         Self(value)
584     }
585 }
586 unsafe impl ::windows::runtime::Abi for ConnectionProfileDeleteStatus {
587     type Abi = Self;
588     type DefaultType = Self;
589 }
590 unsafe impl ::windows::runtime::RuntimeType for ConnectionProfileDeleteStatus {
591     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.ConnectionProfileDeleteStatus;i4)");
592 }
593 #[repr(transparent)]
594 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
595 pub struct ConnectionProfileFilter(::windows::runtime::IInspectable);
596 impl ConnectionProfileFilter {
new() -> ::windows::runtime::Result<Self>597     pub fn new() -> ::windows::runtime::Result<Self> {
598         Self::IActivationFactory(|f| f.activate_instance::<Self>())
599     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>600     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
601         static mut SHARED: ::windows::runtime::FactoryCache<ConnectionProfileFilter, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
602         unsafe { SHARED.call(callback) }
603     }
SetIsConnected(&self, value: bool) -> ::windows::runtime::Result<()>604     pub fn SetIsConnected(&self, value: bool) -> ::windows::runtime::Result<()> {
605         let this = self;
606         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value).ok() }
607     }
IsConnected(&self) -> ::windows::runtime::Result<bool>608     pub fn IsConnected(&self) -> ::windows::runtime::Result<bool> {
609         let this = self;
610         unsafe {
611             let mut result__: bool = ::std::mem::zeroed();
612             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
613         }
614     }
SetIsWwanConnectionProfile(&self, value: bool) -> ::windows::runtime::Result<()>615     pub fn SetIsWwanConnectionProfile(&self, value: bool) -> ::windows::runtime::Result<()> {
616         let this = self;
617         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
618     }
IsWwanConnectionProfile(&self) -> ::windows::runtime::Result<bool>619     pub fn IsWwanConnectionProfile(&self) -> ::windows::runtime::Result<bool> {
620         let this = self;
621         unsafe {
622             let mut result__: bool = ::std::mem::zeroed();
623             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
624         }
625     }
SetIsWlanConnectionProfile(&self, value: bool) -> ::windows::runtime::Result<()>626     pub fn SetIsWlanConnectionProfile(&self, value: bool) -> ::windows::runtime::Result<()> {
627         let this = self;
628         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value).ok() }
629     }
IsWlanConnectionProfile(&self) -> ::windows::runtime::Result<bool>630     pub fn IsWlanConnectionProfile(&self) -> ::windows::runtime::Result<bool> {
631         let this = self;
632         unsafe {
633             let mut result__: bool = ::std::mem::zeroed();
634             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
635         }
636     }
SetNetworkCostType(&self, value: NetworkCostType) -> ::windows::runtime::Result<()>637     pub fn SetNetworkCostType(&self, value: NetworkCostType) -> ::windows::runtime::Result<()> {
638         let this = self;
639         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value).ok() }
640     }
NetworkCostType(&self) -> ::windows::runtime::Result<NetworkCostType>641     pub fn NetworkCostType(&self) -> ::windows::runtime::Result<NetworkCostType> {
642         let this = self;
643         unsafe {
644             let mut result__: NetworkCostType = ::std::mem::zeroed();
645             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkCostType>(result__)
646         }
647     }
648     #[cfg(feature = "Foundation")]
SetServiceProviderGuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<::windows::runtime::GUID>>>(&self, value: Param0) -> ::windows::runtime::Result<()>649     pub fn SetServiceProviderGuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<::windows::runtime::GUID>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
650         let this = self;
651         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
652     }
653     #[cfg(feature = "Foundation")]
ServiceProviderGuid(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<::windows::runtime::GUID>>654     pub fn ServiceProviderGuid(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<::windows::runtime::GUID>> {
655         let this = self;
656         unsafe {
657             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
658             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<::windows::runtime::GUID>>(result__)
659         }
660     }
661     #[cfg(feature = "Foundation")]
SetIsRoaming<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<bool>>>(&self, value: Param0) -> ::windows::runtime::Result<()>662     pub fn SetIsRoaming<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<bool>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
663         let this = &::windows::runtime::Interface::cast::<IConnectionProfileFilter2>(self)?;
664         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
665     }
666     #[cfg(feature = "Foundation")]
IsRoaming(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<bool>>667     pub fn IsRoaming(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<bool>> {
668         let this = &::windows::runtime::Interface::cast::<IConnectionProfileFilter2>(self)?;
669         unsafe {
670             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
671             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<bool>>(result__)
672         }
673     }
674     #[cfg(feature = "Foundation")]
SetIsOverDataLimit<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<bool>>>(&self, value: Param0) -> ::windows::runtime::Result<()>675     pub fn SetIsOverDataLimit<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<bool>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
676         let this = &::windows::runtime::Interface::cast::<IConnectionProfileFilter2>(self)?;
677         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
678     }
679     #[cfg(feature = "Foundation")]
IsOverDataLimit(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<bool>>680     pub fn IsOverDataLimit(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<bool>> {
681         let this = &::windows::runtime::Interface::cast::<IConnectionProfileFilter2>(self)?;
682         unsafe {
683             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
684             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<bool>>(result__)
685         }
686     }
687     #[cfg(feature = "Foundation")]
SetIsBackgroundDataUsageRestricted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<bool>>>(&self, value: Param0) -> ::windows::runtime::Result<()>688     pub fn SetIsBackgroundDataUsageRestricted<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<bool>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
689         let this = &::windows::runtime::Interface::cast::<IConnectionProfileFilter2>(self)?;
690         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
691     }
692     #[cfg(feature = "Foundation")]
IsBackgroundDataUsageRestricted(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<bool>>693     pub fn IsBackgroundDataUsageRestricted(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<bool>> {
694         let this = &::windows::runtime::Interface::cast::<IConnectionProfileFilter2>(self)?;
695         unsafe {
696             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
697             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<bool>>(result__)
698         }
699     }
700     #[cfg(feature = "Storage_Streams")]
RawData(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer>701     pub fn RawData(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IBuffer> {
702         let this = &::windows::runtime::Interface::cast::<IConnectionProfileFilter2>(self)?;
703         unsafe {
704             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
705             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IBuffer>(result__)
706         }
707     }
708     #[cfg(feature = "Foundation")]
SetPurposeGuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<::windows::runtime::GUID>>>(&self, value: Param0) -> ::windows::runtime::Result<()>709     pub fn SetPurposeGuid<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<::windows::runtime::GUID>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
710         let this = &::windows::runtime::Interface::cast::<IConnectionProfileFilter3>(self)?;
711         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
712     }
713     #[cfg(feature = "Foundation")]
PurposeGuid(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<::windows::runtime::GUID>>714     pub fn PurposeGuid(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<::windows::runtime::GUID>> {
715         let this = &::windows::runtime::Interface::cast::<IConnectionProfileFilter3>(self)?;
716         unsafe {
717             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
718             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<::windows::runtime::GUID>>(result__)
719         }
720     }
721 }
722 unsafe impl ::windows::runtime::RuntimeType for ConnectionProfileFilter {
723     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.ConnectionProfileFilter;{204c7cc8-bd2d-4e8d-a4b3-455ec337388a})");
724 }
725 unsafe impl ::windows::runtime::Interface for ConnectionProfileFilter {
726     type Vtable = IConnectionProfileFilter_abi;
727     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(541883592, 48429, 20109, [164, 179, 69, 94, 195, 55, 56, 138]);
728 }
729 impl ::windows::runtime::RuntimeName for ConnectionProfileFilter {
730     const NAME: &'static str = "Windows.Networking.Connectivity.ConnectionProfileFilter";
731 }
732 impl ::std::convert::From<ConnectionProfileFilter> for ::windows::runtime::IUnknown {
from(value: ConnectionProfileFilter) -> Self733     fn from(value: ConnectionProfileFilter) -> Self {
734         unsafe { ::std::mem::transmute(value) }
735     }
736 }
737 impl ::std::convert::From<&ConnectionProfileFilter> for ::windows::runtime::IUnknown {
from(value: &ConnectionProfileFilter) -> Self738     fn from(value: &ConnectionProfileFilter) -> Self {
739         ::std::convert::From::from(::std::clone::Clone::clone(value))
740     }
741 }
742 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ConnectionProfileFilter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>743     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
744         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
745     }
746 }
747 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ConnectionProfileFilter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>748     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
749         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
750     }
751 }
752 impl ::std::convert::From<ConnectionProfileFilter> for ::windows::runtime::IInspectable {
from(value: ConnectionProfileFilter) -> Self753     fn from(value: ConnectionProfileFilter) -> Self {
754         value.0
755     }
756 }
757 impl ::std::convert::From<&ConnectionProfileFilter> for ::windows::runtime::IInspectable {
from(value: &ConnectionProfileFilter) -> Self758     fn from(value: &ConnectionProfileFilter) -> Self {
759         value.0.clone()
760     }
761 }
762 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ConnectionProfileFilter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>763     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
764         ::windows::runtime::Param::Owned(self.0)
765     }
766 }
767 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ConnectionProfileFilter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>768     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
769         ::windows::runtime::Param::Borrowed(&self.0)
770     }
771 }
772 unsafe impl ::std::marker::Send for ConnectionProfileFilter {}
773 unsafe impl ::std::marker::Sync for ConnectionProfileFilter {}
774 #[repr(transparent)]
775 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
776 pub struct ConnectionSession(::windows::runtime::IInspectable);
777 impl ConnectionSession {
ConnectionProfile(&self) -> ::windows::runtime::Result<ConnectionProfile>778     pub fn ConnectionProfile(&self) -> ::windows::runtime::Result<ConnectionProfile> {
779         let this = self;
780         unsafe {
781             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
782             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ConnectionProfile>(result__)
783         }
784     }
785     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>786     pub fn Close(&self) -> ::windows::runtime::Result<()> {
787         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
788         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
789     }
790 }
791 unsafe impl ::windows::runtime::RuntimeType for ConnectionSession {
792     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.ConnectionSession;{ff905d4c-f83b-41b0-8a0c-1462d9c56b73})");
793 }
794 unsafe impl ::windows::runtime::Interface for ConnectionSession {
795     type Vtable = IConnectionSession_abi;
796     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4287651148, 63547, 16816, [138, 12, 20, 98, 217, 197, 107, 115]);
797 }
798 impl ::windows::runtime::RuntimeName for ConnectionSession {
799     const NAME: &'static str = "Windows.Networking.Connectivity.ConnectionSession";
800 }
801 impl ::std::convert::From<ConnectionSession> for ::windows::runtime::IUnknown {
from(value: ConnectionSession) -> Self802     fn from(value: ConnectionSession) -> Self {
803         unsafe { ::std::mem::transmute(value) }
804     }
805 }
806 impl ::std::convert::From<&ConnectionSession> for ::windows::runtime::IUnknown {
from(value: &ConnectionSession) -> Self807     fn from(value: &ConnectionSession) -> Self {
808         ::std::convert::From::from(::std::clone::Clone::clone(value))
809     }
810 }
811 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ConnectionSession {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>812     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
813         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
814     }
815 }
816 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ConnectionSession {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>817     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
818         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
819     }
820 }
821 impl ::std::convert::From<ConnectionSession> for ::windows::runtime::IInspectable {
from(value: ConnectionSession) -> Self822     fn from(value: ConnectionSession) -> Self {
823         value.0
824     }
825 }
826 impl ::std::convert::From<&ConnectionSession> for ::windows::runtime::IInspectable {
from(value: &ConnectionSession) -> Self827     fn from(value: &ConnectionSession) -> Self {
828         value.0.clone()
829     }
830 }
831 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ConnectionSession {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>832     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
833         ::windows::runtime::Param::Owned(self.0)
834     }
835 }
836 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ConnectionSession {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>837     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
838         ::windows::runtime::Param::Borrowed(&self.0)
839     }
840 }
841 #[cfg(feature = "Foundation")]
842 impl ::std::convert::TryFrom<ConnectionSession> for super::super::Foundation::IClosable {
843     type Error = ::windows::runtime::Error;
try_from(value: ConnectionSession) -> ::windows::runtime::Result<Self>844     fn try_from(value: ConnectionSession) -> ::windows::runtime::Result<Self> {
845         ::std::convert::TryFrom::try_from(&value)
846     }
847 }
848 #[cfg(feature = "Foundation")]
849 impl ::std::convert::TryFrom<&ConnectionSession> for super::super::Foundation::IClosable {
850     type Error = ::windows::runtime::Error;
try_from(value: &ConnectionSession) -> ::windows::runtime::Result<Self>851     fn try_from(value: &ConnectionSession) -> ::windows::runtime::Result<Self> {
852         ::windows::runtime::Interface::cast(value)
853     }
854 }
855 #[cfg(feature = "Foundation")]
856 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for ConnectionSession {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>857     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
858         ::windows::runtime::IntoParam::into_param(&self)
859     }
860 }
861 #[cfg(feature = "Foundation")]
862 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &ConnectionSession {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>863     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
864         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
865     }
866 }
867 unsafe impl ::std::marker::Send for ConnectionSession {}
868 unsafe impl ::std::marker::Sync for ConnectionSession {}
869 #[repr(transparent)]
870 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
871 pub struct ConnectivityInterval(::windows::runtime::IInspectable);
872 impl ConnectivityInterval {
873     #[cfg(feature = "Foundation")]
StartTime(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime>874     pub fn StartTime(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> {
875         let this = self;
876         unsafe {
877             let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed();
878             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__)
879         }
880     }
881     #[cfg(feature = "Foundation")]
ConnectionDuration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>882     pub fn ConnectionDuration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
883         let this = self;
884         unsafe {
885             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
886             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
887         }
888     }
889 }
890 unsafe impl ::windows::runtime::RuntimeType for ConnectivityInterval {
891     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.ConnectivityInterval;{4faa3fff-6746-4824-a964-eed8e87f8709})");
892 }
893 unsafe impl ::windows::runtime::Interface for ConnectivityInterval {
894     type Vtable = IConnectivityInterval_abi;
895     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1336557567, 26438, 18468, [169, 100, 238, 216, 232, 127, 135, 9]);
896 }
897 impl ::windows::runtime::RuntimeName for ConnectivityInterval {
898     const NAME: &'static str = "Windows.Networking.Connectivity.ConnectivityInterval";
899 }
900 impl ::std::convert::From<ConnectivityInterval> for ::windows::runtime::IUnknown {
from(value: ConnectivityInterval) -> Self901     fn from(value: ConnectivityInterval) -> Self {
902         unsafe { ::std::mem::transmute(value) }
903     }
904 }
905 impl ::std::convert::From<&ConnectivityInterval> for ::windows::runtime::IUnknown {
from(value: &ConnectivityInterval) -> Self906     fn from(value: &ConnectivityInterval) -> Self {
907         ::std::convert::From::from(::std::clone::Clone::clone(value))
908     }
909 }
910 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ConnectivityInterval {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>911     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
912         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
913     }
914 }
915 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ConnectivityInterval {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>916     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
917         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
918     }
919 }
920 impl ::std::convert::From<ConnectivityInterval> for ::windows::runtime::IInspectable {
from(value: ConnectivityInterval) -> Self921     fn from(value: ConnectivityInterval) -> Self {
922         value.0
923     }
924 }
925 impl ::std::convert::From<&ConnectivityInterval> for ::windows::runtime::IInspectable {
from(value: &ConnectivityInterval) -> Self926     fn from(value: &ConnectivityInterval) -> Self {
927         value.0.clone()
928     }
929 }
930 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ConnectivityInterval {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>931     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
932         ::windows::runtime::Param::Owned(self.0)
933     }
934 }
935 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ConnectivityInterval {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>936     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
937         ::windows::runtime::Param::Borrowed(&self.0)
938     }
939 }
940 unsafe impl ::std::marker::Send for ConnectivityInterval {}
941 unsafe impl ::std::marker::Sync for ConnectivityInterval {}
942 pub struct ConnectivityManager {}
943 impl ConnectivityManager {
944     #[cfg(feature = "Foundation")]
AcquireConnectionAsync<'a, Param0: ::windows::runtime::IntoParam<'a, CellularApnContext>>(cellularapncontext: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ConnectionSession>>945     pub fn AcquireConnectionAsync<'a, Param0: ::windows::runtime::IntoParam<'a, CellularApnContext>>(cellularapncontext: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ConnectionSession>> {
946         Self::IConnectivityManagerStatics(|this| unsafe {
947             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
948             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), cellularapncontext.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<ConnectionSession>>(result__)
949         })
950     }
AddHttpRoutePolicy<'a, Param0: ::windows::runtime::IntoParam<'a, RoutePolicy>>(routepolicy: Param0) -> ::windows::runtime::Result<()>951     pub fn AddHttpRoutePolicy<'a, Param0: ::windows::runtime::IntoParam<'a, RoutePolicy>>(routepolicy: Param0) -> ::windows::runtime::Result<()> {
952         Self::IConnectivityManagerStatics(|this| unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), routepolicy.into_param().abi()).ok() })
953     }
RemoveHttpRoutePolicy<'a, Param0: ::windows::runtime::IntoParam<'a, RoutePolicy>>(routepolicy: Param0) -> ::windows::runtime::Result<()>954     pub fn RemoveHttpRoutePolicy<'a, Param0: ::windows::runtime::IntoParam<'a, RoutePolicy>>(routepolicy: Param0) -> ::windows::runtime::Result<()> {
955         Self::IConnectivityManagerStatics(|this| unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), routepolicy.into_param().abi()).ok() })
956     }
IConnectivityManagerStatics<R, F: FnOnce(&IConnectivityManagerStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>957     pub fn IConnectivityManagerStatics<R, F: FnOnce(&IConnectivityManagerStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
958         static mut SHARED: ::windows::runtime::FactoryCache<ConnectivityManager, IConnectivityManagerStatics> = ::windows::runtime::FactoryCache::new();
959         unsafe { SHARED.call(callback) }
960     }
961 }
962 impl ::windows::runtime::RuntimeName for ConnectivityManager {
963     const NAME: &'static str = "Windows.Networking.Connectivity.ConnectivityManager";
964 }
965 #[repr(transparent)]
966 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
967 pub struct DataPlanStatus(::windows::runtime::IInspectable);
968 impl DataPlanStatus {
DataPlanUsage(&self) -> ::windows::runtime::Result<DataPlanUsage>969     pub fn DataPlanUsage(&self) -> ::windows::runtime::Result<DataPlanUsage> {
970         let this = self;
971         unsafe {
972             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
973             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<DataPlanUsage>(result__)
974         }
975     }
976     #[cfg(feature = "Foundation")]
DataLimitInMegabytes(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u32>>977     pub fn DataLimitInMegabytes(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u32>> {
978         let this = self;
979         unsafe {
980             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
981             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u32>>(result__)
982         }
983     }
984     #[cfg(feature = "Foundation")]
InboundBitsPerSecond(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u64>>985     pub fn InboundBitsPerSecond(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u64>> {
986         let this = self;
987         unsafe {
988             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
989             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u64>>(result__)
990         }
991     }
992     #[cfg(feature = "Foundation")]
OutboundBitsPerSecond(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u64>>993     pub fn OutboundBitsPerSecond(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u64>> {
994         let this = self;
995         unsafe {
996             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
997             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u64>>(result__)
998         }
999     }
1000     #[cfg(feature = "Foundation")]
NextBillingCycle(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::DateTime>>1001     pub fn NextBillingCycle(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::DateTime>> {
1002         let this = self;
1003         unsafe {
1004             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1005             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<super::super::Foundation::DateTime>>(result__)
1006         }
1007     }
1008     #[cfg(feature = "Foundation")]
MaxTransferSizeInMegabytes(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u32>>1009     pub fn MaxTransferSizeInMegabytes(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u32>> {
1010         let this = self;
1011         unsafe {
1012             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1013             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u32>>(result__)
1014         }
1015     }
1016 }
1017 unsafe impl ::windows::runtime::RuntimeType for DataPlanStatus {
1018     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.DataPlanStatus;{977a8b8c-3885-40f3-8851-42cd2bd568bb})");
1019 }
1020 unsafe impl ::windows::runtime::Interface for DataPlanStatus {
1021     type Vtable = IDataPlanStatus_abi;
1022     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2541390732, 14469, 16627, [136, 81, 66, 205, 43, 213, 104, 187]);
1023 }
1024 impl ::windows::runtime::RuntimeName for DataPlanStatus {
1025     const NAME: &'static str = "Windows.Networking.Connectivity.DataPlanStatus";
1026 }
1027 impl ::std::convert::From<DataPlanStatus> for ::windows::runtime::IUnknown {
from(value: DataPlanStatus) -> Self1028     fn from(value: DataPlanStatus) -> Self {
1029         unsafe { ::std::mem::transmute(value) }
1030     }
1031 }
1032 impl ::std::convert::From<&DataPlanStatus> for ::windows::runtime::IUnknown {
from(value: &DataPlanStatus) -> Self1033     fn from(value: &DataPlanStatus) -> Self {
1034         ::std::convert::From::from(::std::clone::Clone::clone(value))
1035     }
1036 }
1037 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DataPlanStatus {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1038     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1039         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1040     }
1041 }
1042 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DataPlanStatus {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1043     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1044         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1045     }
1046 }
1047 impl ::std::convert::From<DataPlanStatus> for ::windows::runtime::IInspectable {
from(value: DataPlanStatus) -> Self1048     fn from(value: DataPlanStatus) -> Self {
1049         value.0
1050     }
1051 }
1052 impl ::std::convert::From<&DataPlanStatus> for ::windows::runtime::IInspectable {
from(value: &DataPlanStatus) -> Self1053     fn from(value: &DataPlanStatus) -> Self {
1054         value.0.clone()
1055     }
1056 }
1057 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DataPlanStatus {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1058     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1059         ::windows::runtime::Param::Owned(self.0)
1060     }
1061 }
1062 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DataPlanStatus {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1063     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1064         ::windows::runtime::Param::Borrowed(&self.0)
1065     }
1066 }
1067 unsafe impl ::std::marker::Send for DataPlanStatus {}
1068 unsafe impl ::std::marker::Sync for DataPlanStatus {}
1069 #[repr(transparent)]
1070 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1071 pub struct DataPlanUsage(::windows::runtime::IInspectable);
1072 impl DataPlanUsage {
MegabytesUsed(&self) -> ::windows::runtime::Result<u32>1073     pub fn MegabytesUsed(&self) -> ::windows::runtime::Result<u32> {
1074         let this = self;
1075         unsafe {
1076             let mut result__: u32 = ::std::mem::zeroed();
1077             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1078         }
1079     }
1080     #[cfg(feature = "Foundation")]
LastSyncTime(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime>1081     pub fn LastSyncTime(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> {
1082         let this = self;
1083         unsafe {
1084             let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed();
1085             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__)
1086         }
1087     }
1088 }
1089 unsafe impl ::windows::runtime::RuntimeType for DataPlanUsage {
1090     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.DataPlanUsage;{b921492d-3b44-47ff-b361-be59e69ed1b0})");
1091 }
1092 unsafe impl ::windows::runtime::Interface for DataPlanUsage {
1093     type Vtable = IDataPlanUsage_abi;
1094     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3105966381, 15172, 18431, [179, 97, 190, 89, 230, 158, 209, 176]);
1095 }
1096 impl ::windows::runtime::RuntimeName for DataPlanUsage {
1097     const NAME: &'static str = "Windows.Networking.Connectivity.DataPlanUsage";
1098 }
1099 impl ::std::convert::From<DataPlanUsage> for ::windows::runtime::IUnknown {
from(value: DataPlanUsage) -> Self1100     fn from(value: DataPlanUsage) -> Self {
1101         unsafe { ::std::mem::transmute(value) }
1102     }
1103 }
1104 impl ::std::convert::From<&DataPlanUsage> for ::windows::runtime::IUnknown {
from(value: &DataPlanUsage) -> Self1105     fn from(value: &DataPlanUsage) -> Self {
1106         ::std::convert::From::from(::std::clone::Clone::clone(value))
1107     }
1108 }
1109 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DataPlanUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1110     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1111         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1112     }
1113 }
1114 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DataPlanUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1115     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1116         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1117     }
1118 }
1119 impl ::std::convert::From<DataPlanUsage> for ::windows::runtime::IInspectable {
from(value: DataPlanUsage) -> Self1120     fn from(value: DataPlanUsage) -> Self {
1121         value.0
1122     }
1123 }
1124 impl ::std::convert::From<&DataPlanUsage> for ::windows::runtime::IInspectable {
from(value: &DataPlanUsage) -> Self1125     fn from(value: &DataPlanUsage) -> Self {
1126         value.0.clone()
1127     }
1128 }
1129 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DataPlanUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1130     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1131         ::windows::runtime::Param::Owned(self.0)
1132     }
1133 }
1134 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DataPlanUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1135     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1136         ::windows::runtime::Param::Borrowed(&self.0)
1137     }
1138 }
1139 unsafe impl ::std::marker::Send for DataPlanUsage {}
1140 unsafe impl ::std::marker::Sync for DataPlanUsage {}
1141 #[repr(transparent)]
1142 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1143 pub struct DataUsage(::windows::runtime::IInspectable);
1144 impl DataUsage {
1145     #[cfg(feature = "deprecated")]
BytesSent(&self) -> ::windows::runtime::Result<u64>1146     pub fn BytesSent(&self) -> ::windows::runtime::Result<u64> {
1147         let this = self;
1148         unsafe {
1149             let mut result__: u64 = ::std::mem::zeroed();
1150             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
1151         }
1152     }
1153     #[cfg(feature = "deprecated")]
BytesReceived(&self) -> ::windows::runtime::Result<u64>1154     pub fn BytesReceived(&self) -> ::windows::runtime::Result<u64> {
1155         let this = self;
1156         unsafe {
1157             let mut result__: u64 = ::std::mem::zeroed();
1158             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
1159         }
1160     }
1161 }
1162 unsafe impl ::windows::runtime::RuntimeType for DataUsage {
1163     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.DataUsage;{c1431dd3-b146-4d39-b959-0c69b096c512})");
1164 }
1165 unsafe impl ::windows::runtime::Interface for DataUsage {
1166     type Vtable = IDataUsage_abi;
1167     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3242401235, 45382, 19769, [185, 89, 12, 105, 176, 150, 197, 18]);
1168 }
1169 impl ::windows::runtime::RuntimeName for DataUsage {
1170     const NAME: &'static str = "Windows.Networking.Connectivity.DataUsage";
1171 }
1172 impl ::std::convert::From<DataUsage> for ::windows::runtime::IUnknown {
from(value: DataUsage) -> Self1173     fn from(value: DataUsage) -> Self {
1174         unsafe { ::std::mem::transmute(value) }
1175     }
1176 }
1177 impl ::std::convert::From<&DataUsage> for ::windows::runtime::IUnknown {
from(value: &DataUsage) -> Self1178     fn from(value: &DataUsage) -> Self {
1179         ::std::convert::From::from(::std::clone::Clone::clone(value))
1180     }
1181 }
1182 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DataUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1183     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1184         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1185     }
1186 }
1187 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DataUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1188     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1189         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1190     }
1191 }
1192 impl ::std::convert::From<DataUsage> for ::windows::runtime::IInspectable {
from(value: DataUsage) -> Self1193     fn from(value: DataUsage) -> Self {
1194         value.0
1195     }
1196 }
1197 impl ::std::convert::From<&DataUsage> for ::windows::runtime::IInspectable {
from(value: &DataUsage) -> Self1198     fn from(value: &DataUsage) -> Self {
1199         value.0.clone()
1200     }
1201 }
1202 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DataUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1203     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1204         ::windows::runtime::Param::Owned(self.0)
1205     }
1206 }
1207 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DataUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1208     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1209         ::windows::runtime::Param::Borrowed(&self.0)
1210     }
1211 }
1212 unsafe impl ::std::marker::Send for DataUsage {}
1213 unsafe impl ::std::marker::Sync for DataUsage {}
1214 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1215 #[repr(transparent)]
1216 pub struct DataUsageGranularity(pub i32);
1217 impl DataUsageGranularity {
1218     pub const PerMinute: DataUsageGranularity = DataUsageGranularity(0i32);
1219     pub const PerHour: DataUsageGranularity = DataUsageGranularity(1i32);
1220     pub const PerDay: DataUsageGranularity = DataUsageGranularity(2i32);
1221     pub const Total: DataUsageGranularity = DataUsageGranularity(3i32);
1222 }
1223 impl ::std::convert::From<i32> for DataUsageGranularity {
from(value: i32) -> Self1224     fn from(value: i32) -> Self {
1225         Self(value)
1226     }
1227 }
1228 unsafe impl ::windows::runtime::Abi for DataUsageGranularity {
1229     type Abi = Self;
1230     type DefaultType = Self;
1231 }
1232 unsafe impl ::windows::runtime::RuntimeType for DataUsageGranularity {
1233     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.DataUsageGranularity;i4)");
1234 }
1235 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1236 #[repr(transparent)]
1237 pub struct DomainConnectivityLevel(pub i32);
1238 impl DomainConnectivityLevel {
1239     pub const None: DomainConnectivityLevel = DomainConnectivityLevel(0i32);
1240     pub const Unauthenticated: DomainConnectivityLevel = DomainConnectivityLevel(1i32);
1241     pub const Authenticated: DomainConnectivityLevel = DomainConnectivityLevel(2i32);
1242 }
1243 impl ::std::convert::From<i32> for DomainConnectivityLevel {
from(value: i32) -> Self1244     fn from(value: i32) -> Self {
1245         Self(value)
1246     }
1247 }
1248 unsafe impl ::windows::runtime::Abi for DomainConnectivityLevel {
1249     type Abi = Self;
1250     type DefaultType = Self;
1251 }
1252 unsafe impl ::windows::runtime::RuntimeType for DomainConnectivityLevel {
1253     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.DomainConnectivityLevel;i4)");
1254 }
1255 #[repr(transparent)]
1256 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1257 #[doc(hidden)]
1258 pub struct IAttributedNetworkUsage(::windows::runtime::IInspectable);
1259 unsafe impl ::windows::runtime::Interface for IAttributedNetworkUsage {
1260     type Vtable = IAttributedNetworkUsage_abi;
1261     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4150898745, 60578, 17899, [173, 225, 176, 54, 139, 117, 108, 73]);
1262 }
1263 #[repr(C)]
1264 #[doc(hidden)]
1265 pub struct IAttributedNetworkUsage_abi(
1266     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1267     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1268     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1269     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1270     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1271     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1272     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
1273     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
1274     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1275     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1276     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1277     #[cfg(not(feature = "Storage_Streams"))] usize,
1278 );
1279 #[repr(transparent)]
1280 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1281 #[doc(hidden)]
1282 pub struct ICellularApnContext(::windows::runtime::IInspectable);
1283 unsafe impl ::windows::runtime::Interface for ICellularApnContext {
1284     type Vtable = ICellularApnContext_abi;
1285     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1873095156, 61437, 17730, [154, 178, 112, 91, 191, 148, 148, 58]);
1286 }
1287 #[repr(C)]
1288 #[doc(hidden)]
1289 pub struct ICellularApnContext_abi(
1290     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1291     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1292     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1293     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1294     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1295     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1296     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1297     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1298     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1299     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1300     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1301     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1302     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1303     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1304     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1305     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
1306     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut CellularApnAuthenticationType) -> ::windows::runtime::HRESULT,
1307     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: CellularApnAuthenticationType) -> ::windows::runtime::HRESULT,
1308 );
1309 #[repr(transparent)]
1310 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1311 #[doc(hidden)]
1312 pub struct ICellularApnContext2(::windows::runtime::IInspectable);
1313 unsafe impl ::windows::runtime::Interface for ICellularApnContext2 {
1314     type Vtable = ICellularApnContext2_abi;
1315     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1991306010, 44105, 17232, [177, 229, 220, 71, 99, 188, 105, 199]);
1316 }
1317 #[repr(C)]
1318 #[doc(hidden)]
1319 pub struct ICellularApnContext2_abi(
1320     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1321     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1322     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1323     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1324     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1325     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1326     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1327     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1328 );
1329 #[repr(transparent)]
1330 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1331 #[doc(hidden)]
1332 pub struct IConnectionCost(::windows::runtime::IInspectable);
1333 unsafe impl ::windows::runtime::Interface for IConnectionCost {
1334     type Vtable = IConnectionCost_abi;
1335     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3134707753, 13334, 19216, [162, 2, 186, 192, 176, 117, 189, 174]);
1336 }
1337 #[repr(C)]
1338 #[doc(hidden)]
1339 pub struct IConnectionCost_abi(
1340     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1341     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1344     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1345     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1346     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut NetworkCostType) -> ::windows::runtime::HRESULT,
1347     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1348     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1349     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1350 );
1351 #[repr(transparent)]
1352 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1353 #[doc(hidden)]
1354 pub struct IConnectionCost2(::windows::runtime::IInspectable);
1355 unsafe impl ::windows::runtime::Interface for IConnectionCost2 {
1356     type Vtable = IConnectionCost2_abi;
1357     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2383493637, 57865, 17737, [187, 37, 94, 13, 182, 145, 203, 5]);
1358 }
1359 #[repr(C)]
1360 #[doc(hidden)]
1361 pub struct IConnectionCost2_abi(
1362     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1363     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1364     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1365     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1366     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1369 );
1370 #[repr(transparent)]
1371 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1372 #[doc(hidden)]
1373 pub struct IConnectionProfile(::windows::runtime::IInspectable);
1374 unsafe impl ::windows::runtime::Interface for IConnectionProfile {
1375     type Vtable = IConnectionProfile_abi;
1376     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1908020284, 22926, 18896, [132, 235, 143, 235, 174, 220, 193, 149]);
1377 }
1378 #[repr(C)]
1379 #[doc(hidden)]
1380 pub struct IConnectionProfile_abi(
1381     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1384     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1385     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1386     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1387     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1388     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut NetworkConnectivityLevel) -> ::windows::runtime::HRESULT,
1389     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1390     #[cfg(not(feature = "Foundation_Collections"))] usize,
1391     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1392     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1393     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1394     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, starttime: super::super::Foundation::DateTime, endtime: super::super::Foundation::DateTime, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1395     #[cfg(not(feature = "Foundation"))] usize,
1396     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, starttime: super::super::Foundation::DateTime, endtime: super::super::Foundation::DateTime, states: RoamingStates, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1397     #[cfg(not(feature = "Foundation"))] usize,
1398     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1399 );
1400 #[repr(transparent)]
1401 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1402 #[doc(hidden)]
1403 pub struct IConnectionProfile2(::windows::runtime::IInspectable);
1404 unsafe impl ::windows::runtime::Interface for IConnectionProfile2 {
1405     type Vtable = IConnectionProfile2_abi;
1406     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3791933765, 19615, 16396, [145, 80, 126, 199, 214, 226, 136, 138]);
1407 }
1408 #[repr(C)]
1409 #[doc(hidden)]
1410 pub struct IConnectionProfile2_abi(
1411     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1413     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1414     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1416     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1417     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1418     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1419     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1421     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1422     #[cfg(not(feature = "Foundation"))] usize,
1423     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1424     #[cfg(not(feature = "Foundation"))] usize,
1425     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut DomainConnectivityLevel) -> ::windows::runtime::HRESULT,
1426     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, starttime: super::super::Foundation::DateTime, endtime: super::super::Foundation::DateTime, granularity: DataUsageGranularity, states: NetworkUsageStates, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1427     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1428     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, starttime: super::super::Foundation::DateTime, endtime: super::super::Foundation::DateTime, states: NetworkUsageStates, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1429     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1430 );
1431 #[repr(transparent)]
1432 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1433 #[doc(hidden)]
1434 pub struct IConnectionProfile3(::windows::runtime::IInspectable);
1435 unsafe impl ::windows::runtime::Interface for IConnectionProfile3 {
1436     type Vtable = IConnectionProfile3_abi;
1437     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1468802344, 19673, 16737, [128, 69, 32, 28, 253, 91, 17, 92]);
1438 }
1439 #[repr(C)]
1440 #[doc(hidden)]
1441 pub struct IConnectionProfile3_abi(
1442     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1443     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1444     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1445     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1446     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1447     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1448     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, starttime: super::super::Foundation::DateTime, endtime: super::super::Foundation::DateTime, states: NetworkUsageStates, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1449     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1450 );
1451 #[repr(transparent)]
1452 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1453 #[doc(hidden)]
1454 pub struct IConnectionProfile4(::windows::runtime::IInspectable);
1455 unsafe impl ::windows::runtime::Interface for IConnectionProfile4 {
1456     type Vtable = IConnectionProfile4_abi;
1457     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2049786573, 33248, 19174, [171, 237, 171, 156, 161, 62, 183, 20]);
1458 }
1459 #[repr(C)]
1460 #[doc(hidden)]
1461 pub struct IConnectionProfile4_abi(
1462     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1463     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1464     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1465     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1466     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1467     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1468     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, starttime: super::super::Foundation::DateTime, endtime: super::super::Foundation::DateTime, states: NetworkUsageStates, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1469     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1470 );
1471 #[repr(transparent)]
1472 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1473 #[doc(hidden)]
1474 pub struct IConnectionProfile5(::windows::runtime::IInspectable);
1475 unsafe impl ::windows::runtime::Interface for IConnectionProfile5 {
1476     type Vtable = IConnectionProfile5_abi;
1477     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2234916551, 40051, 19424, [143, 20, 87, 142, 236, 113, 238, 14]);
1478 }
1479 #[repr(C)]
1480 #[doc(hidden)]
1481 pub struct IConnectionProfile5_abi(
1482     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1483     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1484     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1485     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1486     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1487     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1488     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1489     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1490     #[cfg(not(feature = "Foundation"))] usize,
1491 );
1492 #[repr(transparent)]
1493 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1494 #[doc(hidden)]
1495 pub struct IConnectionProfileFilter(::windows::runtime::IInspectable);
1496 unsafe impl ::windows::runtime::Interface for IConnectionProfileFilter {
1497     type Vtable = IConnectionProfileFilter_abi;
1498     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(541883592, 48429, 20109, [164, 179, 69, 94, 195, 55, 56, 138]);
1499 }
1500 #[repr(C)]
1501 #[doc(hidden)]
1502 pub struct IConnectionProfileFilter_abi(
1503     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1504     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1505     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1506     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1507     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1508     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1509     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
1510     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1511     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
1512     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1513     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
1514     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1515     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: NetworkCostType) -> ::windows::runtime::HRESULT,
1516     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut NetworkCostType) -> ::windows::runtime::HRESULT,
1517     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1518     #[cfg(not(feature = "Foundation"))] usize,
1519     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1520     #[cfg(not(feature = "Foundation"))] usize,
1521 );
1522 #[repr(transparent)]
1523 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1524 #[doc(hidden)]
1525 pub struct IConnectionProfileFilter2(::windows::runtime::IInspectable);
1526 unsafe impl ::windows::runtime::Interface for IConnectionProfileFilter2 {
1527     type Vtable = IConnectionProfileFilter2_abi;
1528     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3439759073, 50172, 20397, [157, 220, 89, 63, 170, 75, 120, 133]);
1529 }
1530 #[repr(C)]
1531 #[doc(hidden)]
1532 pub struct IConnectionProfileFilter2_abi(
1533     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1534     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1535     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1536     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1537     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1538     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1539     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1540     #[cfg(not(feature = "Foundation"))] usize,
1541     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1542     #[cfg(not(feature = "Foundation"))] usize,
1543     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1544     #[cfg(not(feature = "Foundation"))] usize,
1545     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1546     #[cfg(not(feature = "Foundation"))] usize,
1547     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1548     #[cfg(not(feature = "Foundation"))] usize,
1549     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1550     #[cfg(not(feature = "Foundation"))] usize,
1551     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1552     #[cfg(not(feature = "Storage_Streams"))] usize,
1553 );
1554 #[repr(transparent)]
1555 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1556 #[doc(hidden)]
1557 pub struct IConnectionProfileFilter3(::windows::runtime::IInspectable);
1558 unsafe impl ::windows::runtime::Interface for IConnectionProfileFilter3 {
1559     type Vtable = IConnectionProfileFilter3_abi;
1560     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(178915776, 20500, 17532, [136, 9, 174, 228, 203, 10, 249, 74]);
1561 }
1562 #[repr(C)]
1563 #[doc(hidden)]
1564 pub struct IConnectionProfileFilter3_abi(
1565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1566     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1569     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1570     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1571     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1572     #[cfg(not(feature = "Foundation"))] usize,
1573     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1574     #[cfg(not(feature = "Foundation"))] usize,
1575 );
1576 #[repr(transparent)]
1577 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1578 #[doc(hidden)]
1579 pub struct IConnectionSession(::windows::runtime::IInspectable);
1580 unsafe impl ::windows::runtime::Interface for IConnectionSession {
1581     type Vtable = IConnectionSession_abi;
1582     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4287651148, 63547, 16816, [138, 12, 20, 98, 217, 197, 107, 115]);
1583 }
1584 #[repr(C)]
1585 #[doc(hidden)]
1586 pub struct IConnectionSession_abi(
1587     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1588     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1589     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1590     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1591     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1592     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1593     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1594 );
1595 #[repr(transparent)]
1596 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1597 #[doc(hidden)]
1598 pub struct IConnectivityInterval(::windows::runtime::IInspectable);
1599 unsafe impl ::windows::runtime::Interface for IConnectivityInterval {
1600     type Vtable = IConnectivityInterval_abi;
1601     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1336557567, 26438, 18468, [169, 100, 238, 216, 232, 127, 135, 9]);
1602 }
1603 #[repr(C)]
1604 #[doc(hidden)]
1605 pub struct IConnectivityInterval_abi(
1606     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1607     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1608     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1609     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1610     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1611     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1612     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT,
1613     #[cfg(not(feature = "Foundation"))] usize,
1614     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
1615     #[cfg(not(feature = "Foundation"))] usize,
1616 );
1617 #[repr(transparent)]
1618 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1619 #[doc(hidden)]
1620 pub struct IConnectivityManagerStatics(::windows::runtime::IInspectable);
1621 unsafe impl ::windows::runtime::Interface for IConnectivityManagerStatics {
1622     type Vtable = IConnectivityManagerStatics_abi;
1623     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1361106097, 20401, 18608, [175, 201, 66, 224, 9, 42, 129, 100]);
1624 }
1625 #[repr(C)]
1626 #[doc(hidden)]
1627 pub struct IConnectivityManagerStatics_abi(
1628     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1629     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1630     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1631     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1632     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1634     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cellularapncontext: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1635     #[cfg(not(feature = "Foundation"))] usize,
1636     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, routepolicy: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1637     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, routepolicy: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1638 );
1639 #[repr(transparent)]
1640 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1641 #[doc(hidden)]
1642 pub struct IDataPlanStatus(::windows::runtime::IInspectable);
1643 unsafe impl ::windows::runtime::Interface for IDataPlanStatus {
1644     type Vtable = IDataPlanStatus_abi;
1645     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2541390732, 14469, 16627, [136, 81, 66, 205, 43, 213, 104, 187]);
1646 }
1647 #[repr(C)]
1648 #[doc(hidden)]
1649 pub struct IDataPlanStatus_abi(
1650     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1651     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1652     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1653     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1654     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1655     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1656     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1657     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1658     #[cfg(not(feature = "Foundation"))] usize,
1659     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1660     #[cfg(not(feature = "Foundation"))] usize,
1661     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1662     #[cfg(not(feature = "Foundation"))] usize,
1663     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1664     #[cfg(not(feature = "Foundation"))] usize,
1665     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1666     #[cfg(not(feature = "Foundation"))] usize,
1667 );
1668 #[repr(transparent)]
1669 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1670 #[doc(hidden)]
1671 pub struct IDataPlanUsage(::windows::runtime::IInspectable);
1672 unsafe impl ::windows::runtime::Interface for IDataPlanUsage {
1673     type Vtable = IDataPlanUsage_abi;
1674     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3105966381, 15172, 18431, [179, 97, 190, 89, 230, 158, 209, 176]);
1675 }
1676 #[repr(C)]
1677 #[doc(hidden)]
1678 pub struct IDataPlanUsage_abi(
1679     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1680     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1681     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1682     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1683     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1684     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1685     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1686     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT,
1687     #[cfg(not(feature = "Foundation"))] usize,
1688 );
1689 #[repr(transparent)]
1690 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1691 #[doc(hidden)]
1692 pub struct IDataUsage(::windows::runtime::IInspectable);
1693 unsafe impl ::windows::runtime::Interface for IDataUsage {
1694     type Vtable = IDataUsage_abi;
1695     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3242401235, 45382, 19769, [185, 89, 12, 105, 176, 150, 197, 18]);
1696 }
1697 #[repr(C)]
1698 #[doc(hidden)]
1699 pub struct IDataUsage_abi(
1700     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1701     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1702     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1703     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1704     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
1707     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
1708 );
1709 #[repr(transparent)]
1710 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1711 #[doc(hidden)]
1712 pub struct IIPInformation(::windows::runtime::IInspectable);
1713 unsafe impl ::windows::runtime::Interface for IIPInformation {
1714     type Vtable = IIPInformation_abi;
1715     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3629204960, 5007, 18391, [155, 58, 54, 187, 72, 140, 239, 51]);
1716 }
1717 #[repr(C)]
1718 #[doc(hidden)]
1719 pub struct IIPInformation_abi(
1720     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1721     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1722     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1723     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1724     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1725     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1726     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1727     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1728     #[cfg(not(feature = "Foundation"))] usize,
1729 );
1730 #[repr(transparent)]
1731 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1732 #[doc(hidden)]
1733 pub struct ILanIdentifier(::windows::runtime::IInspectable);
1734 unsafe impl ::windows::runtime::Interface for ILanIdentifier {
1735     type Vtable = ILanIdentifier_abi;
1736     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1219122090, 4360, 17734, [166, 203, 154, 116, 218, 75, 123, 160]);
1737 }
1738 #[repr(C)]
1739 #[doc(hidden)]
1740 pub struct ILanIdentifier_abi(
1741     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1742     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1743     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1744     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1745     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1746     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1747     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1748     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1749     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1750 );
1751 #[repr(transparent)]
1752 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1753 #[doc(hidden)]
1754 pub struct ILanIdentifierData(::windows::runtime::IInspectable);
1755 unsafe impl ::windows::runtime::Interface for ILanIdentifierData {
1756     type Vtable = ILanIdentifierData_abi;
1757     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2806940611, 54841, 17854, [163, 106, 196, 228, 174, 175, 109, 155]);
1758 }
1759 #[repr(C)]
1760 #[doc(hidden)]
1761 pub struct ILanIdentifierData_abi(
1762     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1763     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1764     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1765     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1766     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1768     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1769     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1770     #[cfg(not(feature = "Foundation_Collections"))] usize,
1771 );
1772 #[repr(transparent)]
1773 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1774 #[doc(hidden)]
1775 pub struct INetworkAdapter(::windows::runtime::IInspectable);
1776 unsafe impl ::windows::runtime::Interface for INetworkAdapter {
1777     type Vtable = INetworkAdapter_abi;
1778     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(995372547, 21384, 18796, [168, 163, 175, 253, 57, 174, 194, 230]);
1779 }
1780 #[repr(C)]
1781 #[doc(hidden)]
1782 pub struct INetworkAdapter_abi(
1783     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1786     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1789     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
1790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
1791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1792     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1793     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1794     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1795     #[cfg(not(feature = "Foundation"))] usize,
1796 );
1797 #[repr(transparent)]
1798 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1799 #[doc(hidden)]
1800 pub struct INetworkInformationStatics(::windows::runtime::IInspectable);
1801 unsafe impl ::windows::runtime::Interface for INetworkInformationStatics {
1802     type Vtable = INetworkInformationStatics_abi;
1803     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1349843025, 38157, 16741, [156, 21, 54, 86, 25, 72, 30, 234]);
1804 }
1805 #[repr(C)]
1806 #[doc(hidden)]
1807 pub struct INetworkInformationStatics_abi(
1808     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1809     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1810     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1811     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1812     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1813     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1814     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1815     #[cfg(not(feature = "Foundation_Collections"))] usize,
1816     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1817     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1818     #[cfg(not(feature = "Foundation_Collections"))] usize,
1819     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1820     #[cfg(not(feature = "Foundation_Collections"))] usize,
1821     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1822     #[cfg(not(feature = "Foundation"))] usize,
1823     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, destinationlist: ::windows::runtime::RawPtr, sortoptions: super::HostNameSortOptions, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1824     #[cfg(not(feature = "Foundation_Collections"))] usize,
1825     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, networkstatushandler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
1826     #[cfg(not(feature = "Foundation"))] usize,
1827     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, eventcookie: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
1828     #[cfg(not(feature = "Foundation"))] usize,
1829 );
1830 #[repr(transparent)]
1831 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1832 #[doc(hidden)]
1833 pub struct INetworkInformationStatics2(::windows::runtime::IInspectable);
1834 unsafe impl ::windows::runtime::Interface for INetworkInformationStatics2 {
1835     type Vtable = INetworkInformationStatics2_abi;
1836     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1167912212, 10290, 18870, [186, 110, 226, 101, 240, 71, 134, 168]);
1837 }
1838 #[repr(C)]
1839 #[doc(hidden)]
1840 pub struct INetworkInformationStatics2_abi(
1841     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1842     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1843     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1844     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1845     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1847     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pprofilefilter: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1848     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1849 );
1850 #[repr(transparent)]
1851 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1852 #[doc(hidden)]
1853 pub struct INetworkItem(::windows::runtime::IInspectable);
1854 unsafe impl ::windows::runtime::Interface for INetworkItem {
1855     type Vtable = INetworkItem_abi;
1856     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(29117753, 62944, 17767, [162, 140, 66, 8, 12, 131, 27, 43]);
1857 }
1858 #[repr(C)]
1859 #[doc(hidden)]
1860 pub struct INetworkItem_abi(
1861     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1862     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1863     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1864     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1865     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1866     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1867     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1868     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut NetworkTypes) -> ::windows::runtime::HRESULT,
1869 );
1870 #[repr(transparent)]
1871 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1872 #[doc(hidden)]
1873 pub struct INetworkSecuritySettings(::windows::runtime::IInspectable);
1874 unsafe impl ::windows::runtime::Interface for INetworkSecuritySettings {
1875     type Vtable = INetworkSecuritySettings_abi;
1876     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2090892941, 37243, 19295, [184, 77, 40, 247, 165, 172, 84, 2]);
1877 }
1878 #[repr(C)]
1879 #[doc(hidden)]
1880 pub struct INetworkSecuritySettings_abi(
1881     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1882     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1883     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1884     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1885     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1886     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1887     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut NetworkAuthenticationType) -> ::windows::runtime::HRESULT,
1888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut NetworkEncryptionType) -> ::windows::runtime::HRESULT,
1889 );
1890 #[repr(transparent)]
1891 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1892 #[doc(hidden)]
1893 pub struct INetworkStateChangeEventDetails(::windows::runtime::IInspectable);
1894 unsafe impl ::windows::runtime::Interface for INetworkStateChangeEventDetails {
1895     type Vtable = INetworkStateChangeEventDetails_abi;
1896     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(520942387, 55206, 17629, [164, 233, 104, 124, 71, 107, 144, 61]);
1897 }
1898 #[repr(C)]
1899 #[doc(hidden)]
1900 pub struct INetworkStateChangeEventDetails_abi(
1901     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1902     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1905     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1906     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1907     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1908     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1912     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1913 );
1914 #[repr(transparent)]
1915 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1916 #[doc(hidden)]
1917 pub struct INetworkStateChangeEventDetails2(::windows::runtime::IInspectable);
1918 unsafe impl ::windows::runtime::Interface for INetworkStateChangeEventDetails2 {
1919     type Vtable = INetworkStateChangeEventDetails2_abi;
1920     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3594764520, 12499, 20330, [173, 71, 106, 24, 115, 206, 179, 193]);
1921 }
1922 #[repr(C)]
1923 #[doc(hidden)]
1924 pub struct INetworkStateChangeEventDetails2_abi(
1925     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1926     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1927     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1929     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1933 );
1934 #[repr(transparent)]
1935 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1936 #[doc(hidden)]
1937 pub struct INetworkUsage(::windows::runtime::IInspectable);
1938 unsafe impl ::windows::runtime::Interface for INetworkUsage {
1939     type Vtable = INetworkUsage_abi;
1940     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1239060430, 39301, 18727, [191, 91, 7, 43, 92, 101, 248, 217]);
1941 }
1942 #[repr(C)]
1943 #[doc(hidden)]
1944 pub struct INetworkUsage_abi(
1945     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1946     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1947     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1948     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1949     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1950     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1951     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
1952     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
1953     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
1954     #[cfg(not(feature = "Foundation"))] usize,
1955 );
1956 #[repr(transparent)]
1957 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1958 pub struct IPInformation(::windows::runtime::IInspectable);
1959 impl IPInformation {
NetworkAdapter(&self) -> ::windows::runtime::Result<NetworkAdapter>1960     pub fn NetworkAdapter(&self) -> ::windows::runtime::Result<NetworkAdapter> {
1961         let this = self;
1962         unsafe {
1963             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1964             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkAdapter>(result__)
1965         }
1966     }
1967     #[cfg(feature = "Foundation")]
PrefixLength(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u8>>1968     pub fn PrefixLength(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u8>> {
1969         let this = self;
1970         unsafe {
1971             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1972             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u8>>(result__)
1973         }
1974     }
1975 }
1976 unsafe impl ::windows::runtime::RuntimeType for IPInformation {
1977     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.IPInformation;{d85145e0-138f-47d7-9b3a-36bb488cef33})");
1978 }
1979 unsafe impl ::windows::runtime::Interface for IPInformation {
1980     type Vtable = IIPInformation_abi;
1981     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3629204960, 5007, 18391, [155, 58, 54, 187, 72, 140, 239, 51]);
1982 }
1983 impl ::windows::runtime::RuntimeName for IPInformation {
1984     const NAME: &'static str = "Windows.Networking.Connectivity.IPInformation";
1985 }
1986 impl ::std::convert::From<IPInformation> for ::windows::runtime::IUnknown {
from(value: IPInformation) -> Self1987     fn from(value: IPInformation) -> Self {
1988         unsafe { ::std::mem::transmute(value) }
1989     }
1990 }
1991 impl ::std::convert::From<&IPInformation> for ::windows::runtime::IUnknown {
from(value: &IPInformation) -> Self1992     fn from(value: &IPInformation) -> Self {
1993         ::std::convert::From::from(::std::clone::Clone::clone(value))
1994     }
1995 }
1996 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IPInformation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1997     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1998         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1999     }
2000 }
2001 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IPInformation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2002     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2003         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2004     }
2005 }
2006 impl ::std::convert::From<IPInformation> for ::windows::runtime::IInspectable {
from(value: IPInformation) -> Self2007     fn from(value: IPInformation) -> Self {
2008         value.0
2009     }
2010 }
2011 impl ::std::convert::From<&IPInformation> for ::windows::runtime::IInspectable {
from(value: &IPInformation) -> Self2012     fn from(value: &IPInformation) -> Self {
2013         value.0.clone()
2014     }
2015 }
2016 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IPInformation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2017     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2018         ::windows::runtime::Param::Owned(self.0)
2019     }
2020 }
2021 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IPInformation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2022     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2023         ::windows::runtime::Param::Borrowed(&self.0)
2024     }
2025 }
2026 unsafe impl ::std::marker::Send for IPInformation {}
2027 unsafe impl ::std::marker::Sync for IPInformation {}
2028 #[repr(transparent)]
2029 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2030 #[doc(hidden)]
2031 pub struct IProviderNetworkUsage(::windows::runtime::IInspectable);
2032 unsafe impl ::windows::runtime::Interface for IProviderNetworkUsage {
2033     type Vtable = IProviderNetworkUsage_abi;
2034     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1590074884, 31025, 18632, [184, 243, 70, 48, 15, 164, 39, 40]);
2035 }
2036 #[repr(C)]
2037 #[doc(hidden)]
2038 pub struct IProviderNetworkUsage_abi(
2039     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2040     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2041     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2042     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2043     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2044     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2045     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
2046     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
2047     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2048 );
2049 #[repr(transparent)]
2050 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2051 #[doc(hidden)]
2052 pub struct IProxyConfiguration(::windows::runtime::IInspectable);
2053 unsafe impl ::windows::runtime::Interface for IProxyConfiguration {
2054     type Vtable = IProxyConfiguration_abi;
2055     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4013580468, 36868, 19926, [183, 216, 179, 229, 2, 244, 170, 208]);
2056 }
2057 #[repr(C)]
2058 #[doc(hidden)]
2059 pub struct IProxyConfiguration_abi(
2060     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2061     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2062     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2063     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2064     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2065     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2066     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2067     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
2068     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
2069 );
2070 #[repr(transparent)]
2071 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2072 #[doc(hidden)]
2073 pub struct IRoutePolicy(::windows::runtime::IInspectable);
2074 unsafe impl ::windows::runtime::Interface for IRoutePolicy {
2075     type Vtable = IRoutePolicy_abi;
2076     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(296469676, 4039, 17124, [135, 66, 86, 153, 35, 177, 202, 17]);
2077 }
2078 #[repr(C)]
2079 #[doc(hidden)]
2080 pub struct IRoutePolicy_abi(
2081     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2082     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2083     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2084     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2085     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2086     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2087     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2088     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2089     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::DomainNameType) -> ::windows::runtime::HRESULT,
2090 );
2091 #[repr(transparent)]
2092 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2093 #[doc(hidden)]
2094 pub struct IRoutePolicyFactory(::windows::runtime::IInspectable);
2095 unsafe impl ::windows::runtime::Interface for IRoutePolicyFactory {
2096     type Vtable = IRoutePolicyFactory_abi;
2097     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(906131763, 41358, 19893, [166, 151, 245, 143, 167, 54, 78, 68]);
2098 }
2099 #[repr(C)]
2100 #[doc(hidden)]
2101 pub struct IRoutePolicyFactory_abi(
2102     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2103     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2104     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2105     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2106     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2107     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2108     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, connectionprofile: ::windows::runtime::RawPtr, hostname: ::windows::runtime::RawPtr, r#type: super::DomainNameType, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2109 );
2110 #[repr(transparent)]
2111 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2112 #[doc(hidden)]
2113 pub struct IWlanConnectionProfileDetails(::windows::runtime::IInspectable);
2114 unsafe impl ::windows::runtime::Interface for IWlanConnectionProfileDetails {
2115     type Vtable = IWlanConnectionProfileDetails_abi;
2116     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1444976843, 45914, 19441, [168, 132, 183, 85, 126, 136, 255, 134]);
2117 }
2118 #[repr(C)]
2119 #[doc(hidden)]
2120 pub struct IWlanConnectionProfileDetails_abi(
2121     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2122     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2123     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2124     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2125     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2126     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2127     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2128 );
2129 #[repr(transparent)]
2130 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2131 #[doc(hidden)]
2132 pub struct IWwanConnectionProfileDetails(::windows::runtime::IInspectable);
2133 unsafe impl ::windows::runtime::Interface for IWwanConnectionProfileDetails {
2134     type Vtable = IWwanConnectionProfileDetails_abi;
2135     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(239970558, 33631, 19955, [130, 253, 223, 85, 110, 188, 9, 239]);
2136 }
2137 #[repr(C)]
2138 #[doc(hidden)]
2139 pub struct IWwanConnectionProfileDetails_abi(
2140     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2141     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2142     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2143     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2144     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2145     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2146     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2147     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2148     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut WwanNetworkRegistrationState) -> ::windows::runtime::HRESULT,
2149     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut WwanDataClass) -> ::windows::runtime::HRESULT,
2150 );
2151 #[repr(transparent)]
2152 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2153 #[doc(hidden)]
2154 pub struct IWwanConnectionProfileDetails2(::windows::runtime::IInspectable);
2155 unsafe impl ::windows::runtime::Interface for IWwanConnectionProfileDetails2 {
2156     type Vtable = IWwanConnectionProfileDetails2_abi;
2157     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2054508254, 41453, 18610, [142, 146, 180, 96, 3, 61, 82, 226]);
2158 }
2159 #[repr(C)]
2160 #[doc(hidden)]
2161 pub struct IWwanConnectionProfileDetails2_abi(
2162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2163     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2164     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2165     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2166     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2167     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2168     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut WwanNetworkIPKind) -> ::windows::runtime::HRESULT,
2169     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2170     #[cfg(not(feature = "Foundation_Collections"))] usize,
2171 );
2172 #[repr(transparent)]
2173 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2174 pub struct LanIdentifier(::windows::runtime::IInspectable);
2175 impl LanIdentifier {
InfrastructureId(&self) -> ::windows::runtime::Result<LanIdentifierData>2176     pub fn InfrastructureId(&self) -> ::windows::runtime::Result<LanIdentifierData> {
2177         let this = self;
2178         unsafe {
2179             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2180             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<LanIdentifierData>(result__)
2181         }
2182     }
PortId(&self) -> ::windows::runtime::Result<LanIdentifierData>2183     pub fn PortId(&self) -> ::windows::runtime::Result<LanIdentifierData> {
2184         let this = self;
2185         unsafe {
2186             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2187             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<LanIdentifierData>(result__)
2188         }
2189     }
NetworkAdapterId(&self) -> ::windows::runtime::Result<::windows::runtime::GUID>2190     pub fn NetworkAdapterId(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> {
2191         let this = self;
2192         unsafe {
2193             let mut result__: ::windows::runtime::GUID = ::std::mem::zeroed();
2194             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::GUID>(result__)
2195         }
2196     }
2197 }
2198 unsafe impl ::windows::runtime::RuntimeType for LanIdentifier {
2199     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.LanIdentifier;{48aa53aa-1108-4546-a6cb-9a74da4b7ba0})");
2200 }
2201 unsafe impl ::windows::runtime::Interface for LanIdentifier {
2202     type Vtable = ILanIdentifier_abi;
2203     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1219122090, 4360, 17734, [166, 203, 154, 116, 218, 75, 123, 160]);
2204 }
2205 impl ::windows::runtime::RuntimeName for LanIdentifier {
2206     const NAME: &'static str = "Windows.Networking.Connectivity.LanIdentifier";
2207 }
2208 impl ::std::convert::From<LanIdentifier> for ::windows::runtime::IUnknown {
from(value: LanIdentifier) -> Self2209     fn from(value: LanIdentifier) -> Self {
2210         unsafe { ::std::mem::transmute(value) }
2211     }
2212 }
2213 impl ::std::convert::From<&LanIdentifier> for ::windows::runtime::IUnknown {
from(value: &LanIdentifier) -> Self2214     fn from(value: &LanIdentifier) -> Self {
2215         ::std::convert::From::from(::std::clone::Clone::clone(value))
2216     }
2217 }
2218 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for LanIdentifier {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2219     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2220         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2221     }
2222 }
2223 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &LanIdentifier {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2224     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2225         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2226     }
2227 }
2228 impl ::std::convert::From<LanIdentifier> for ::windows::runtime::IInspectable {
from(value: LanIdentifier) -> Self2229     fn from(value: LanIdentifier) -> Self {
2230         value.0
2231     }
2232 }
2233 impl ::std::convert::From<&LanIdentifier> for ::windows::runtime::IInspectable {
from(value: &LanIdentifier) -> Self2234     fn from(value: &LanIdentifier) -> Self {
2235         value.0.clone()
2236     }
2237 }
2238 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for LanIdentifier {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2239     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2240         ::windows::runtime::Param::Owned(self.0)
2241     }
2242 }
2243 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a LanIdentifier {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2244     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2245         ::windows::runtime::Param::Borrowed(&self.0)
2246     }
2247 }
2248 unsafe impl ::std::marker::Send for LanIdentifier {}
2249 unsafe impl ::std::marker::Sync for LanIdentifier {}
2250 #[repr(transparent)]
2251 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2252 pub struct LanIdentifierData(::windows::runtime::IInspectable);
2253 impl LanIdentifierData {
Type(&self) -> ::windows::runtime::Result<u32>2254     pub fn Type(&self) -> ::windows::runtime::Result<u32> {
2255         let this = self;
2256         unsafe {
2257             let mut result__: u32 = ::std::mem::zeroed();
2258             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2259         }
2260     }
2261     #[cfg(feature = "Foundation_Collections")]
Value(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<u8>>2262     pub fn Value(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<u8>> {
2263         let this = self;
2264         unsafe {
2265             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2266             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<u8>>(result__)
2267         }
2268     }
2269 }
2270 unsafe impl ::windows::runtime::RuntimeType for LanIdentifierData {
2271     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.LanIdentifierData;{a74e83c3-d639-45be-a36a-c4e4aeaf6d9b})");
2272 }
2273 unsafe impl ::windows::runtime::Interface for LanIdentifierData {
2274     type Vtable = ILanIdentifierData_abi;
2275     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2806940611, 54841, 17854, [163, 106, 196, 228, 174, 175, 109, 155]);
2276 }
2277 impl ::windows::runtime::RuntimeName for LanIdentifierData {
2278     const NAME: &'static str = "Windows.Networking.Connectivity.LanIdentifierData";
2279 }
2280 impl ::std::convert::From<LanIdentifierData> for ::windows::runtime::IUnknown {
from(value: LanIdentifierData) -> Self2281     fn from(value: LanIdentifierData) -> Self {
2282         unsafe { ::std::mem::transmute(value) }
2283     }
2284 }
2285 impl ::std::convert::From<&LanIdentifierData> for ::windows::runtime::IUnknown {
from(value: &LanIdentifierData) -> Self2286     fn from(value: &LanIdentifierData) -> Self {
2287         ::std::convert::From::from(::std::clone::Clone::clone(value))
2288     }
2289 }
2290 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for LanIdentifierData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2291     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2292         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2293     }
2294 }
2295 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &LanIdentifierData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2296     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2297         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2298     }
2299 }
2300 impl ::std::convert::From<LanIdentifierData> for ::windows::runtime::IInspectable {
from(value: LanIdentifierData) -> Self2301     fn from(value: LanIdentifierData) -> Self {
2302         value.0
2303     }
2304 }
2305 impl ::std::convert::From<&LanIdentifierData> for ::windows::runtime::IInspectable {
from(value: &LanIdentifierData) -> Self2306     fn from(value: &LanIdentifierData) -> Self {
2307         value.0.clone()
2308     }
2309 }
2310 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for LanIdentifierData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2311     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2312         ::windows::runtime::Param::Owned(self.0)
2313     }
2314 }
2315 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a LanIdentifierData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2316     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2317         ::windows::runtime::Param::Borrowed(&self.0)
2318     }
2319 }
2320 unsafe impl ::std::marker::Send for LanIdentifierData {}
2321 unsafe impl ::std::marker::Sync for LanIdentifierData {}
2322 #[repr(transparent)]
2323 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2324 pub struct NetworkAdapter(::windows::runtime::IInspectable);
2325 impl NetworkAdapter {
OutboundMaxBitsPerSecond(&self) -> ::windows::runtime::Result<u64>2326     pub fn OutboundMaxBitsPerSecond(&self) -> ::windows::runtime::Result<u64> {
2327         let this = self;
2328         unsafe {
2329             let mut result__: u64 = ::std::mem::zeroed();
2330             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
2331         }
2332     }
InboundMaxBitsPerSecond(&self) -> ::windows::runtime::Result<u64>2333     pub fn InboundMaxBitsPerSecond(&self) -> ::windows::runtime::Result<u64> {
2334         let this = self;
2335         unsafe {
2336             let mut result__: u64 = ::std::mem::zeroed();
2337             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
2338         }
2339     }
IanaInterfaceType(&self) -> ::windows::runtime::Result<u32>2340     pub fn IanaInterfaceType(&self) -> ::windows::runtime::Result<u32> {
2341         let this = self;
2342         unsafe {
2343             let mut result__: u32 = ::std::mem::zeroed();
2344             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2345         }
2346     }
NetworkItem(&self) -> ::windows::runtime::Result<NetworkItem>2347     pub fn NetworkItem(&self) -> ::windows::runtime::Result<NetworkItem> {
2348         let this = self;
2349         unsafe {
2350             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2351             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkItem>(result__)
2352         }
2353     }
NetworkAdapterId(&self) -> ::windows::runtime::Result<::windows::runtime::GUID>2354     pub fn NetworkAdapterId(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> {
2355         let this = self;
2356         unsafe {
2357             let mut result__: ::windows::runtime::GUID = ::std::mem::zeroed();
2358             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::GUID>(result__)
2359         }
2360     }
2361     #[cfg(feature = "Foundation")]
GetConnectedProfileAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ConnectionProfile>>2362     pub fn GetConnectedProfileAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ConnectionProfile>> {
2363         let this = self;
2364         unsafe {
2365             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2366             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<ConnectionProfile>>(result__)
2367         }
2368     }
2369 }
2370 unsafe impl ::windows::runtime::RuntimeType for NetworkAdapter {
2371     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.NetworkAdapter;{3b542e03-5388-496c-a8a3-affd39aec2e6})");
2372 }
2373 unsafe impl ::windows::runtime::Interface for NetworkAdapter {
2374     type Vtable = INetworkAdapter_abi;
2375     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(995372547, 21384, 18796, [168, 163, 175, 253, 57, 174, 194, 230]);
2376 }
2377 impl ::windows::runtime::RuntimeName for NetworkAdapter {
2378     const NAME: &'static str = "Windows.Networking.Connectivity.NetworkAdapter";
2379 }
2380 impl ::std::convert::From<NetworkAdapter> for ::windows::runtime::IUnknown {
from(value: NetworkAdapter) -> Self2381     fn from(value: NetworkAdapter) -> Self {
2382         unsafe { ::std::mem::transmute(value) }
2383     }
2384 }
2385 impl ::std::convert::From<&NetworkAdapter> for ::windows::runtime::IUnknown {
from(value: &NetworkAdapter) -> Self2386     fn from(value: &NetworkAdapter) -> Self {
2387         ::std::convert::From::from(::std::clone::Clone::clone(value))
2388     }
2389 }
2390 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for NetworkAdapter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2391     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2392         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2393     }
2394 }
2395 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &NetworkAdapter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2396     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2397         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2398     }
2399 }
2400 impl ::std::convert::From<NetworkAdapter> for ::windows::runtime::IInspectable {
from(value: NetworkAdapter) -> Self2401     fn from(value: NetworkAdapter) -> Self {
2402         value.0
2403     }
2404 }
2405 impl ::std::convert::From<&NetworkAdapter> for ::windows::runtime::IInspectable {
from(value: &NetworkAdapter) -> Self2406     fn from(value: &NetworkAdapter) -> Self {
2407         value.0.clone()
2408     }
2409 }
2410 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for NetworkAdapter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2411     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2412         ::windows::runtime::Param::Owned(self.0)
2413     }
2414 }
2415 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a NetworkAdapter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2416     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2417         ::windows::runtime::Param::Borrowed(&self.0)
2418     }
2419 }
2420 unsafe impl ::std::marker::Send for NetworkAdapter {}
2421 unsafe impl ::std::marker::Sync for NetworkAdapter {}
2422 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2423 #[repr(transparent)]
2424 pub struct NetworkAuthenticationType(pub i32);
2425 impl NetworkAuthenticationType {
2426     pub const None: NetworkAuthenticationType = NetworkAuthenticationType(0i32);
2427     pub const Unknown: NetworkAuthenticationType = NetworkAuthenticationType(1i32);
2428     pub const Open80211: NetworkAuthenticationType = NetworkAuthenticationType(2i32);
2429     pub const SharedKey80211: NetworkAuthenticationType = NetworkAuthenticationType(3i32);
2430     pub const Wpa: NetworkAuthenticationType = NetworkAuthenticationType(4i32);
2431     pub const WpaPsk: NetworkAuthenticationType = NetworkAuthenticationType(5i32);
2432     pub const WpaNone: NetworkAuthenticationType = NetworkAuthenticationType(6i32);
2433     pub const Rsna: NetworkAuthenticationType = NetworkAuthenticationType(7i32);
2434     pub const RsnaPsk: NetworkAuthenticationType = NetworkAuthenticationType(8i32);
2435     pub const Ihv: NetworkAuthenticationType = NetworkAuthenticationType(9i32);
2436     pub const Wpa3: NetworkAuthenticationType = NetworkAuthenticationType(10i32);
2437     pub const Wpa3Enterprise192Bits: NetworkAuthenticationType = NetworkAuthenticationType(10i32);
2438     pub const Wpa3Sae: NetworkAuthenticationType = NetworkAuthenticationType(11i32);
2439     pub const Owe: NetworkAuthenticationType = NetworkAuthenticationType(12i32);
2440     pub const Wpa3Enterprise: NetworkAuthenticationType = NetworkAuthenticationType(13i32);
2441 }
2442 impl ::std::convert::From<i32> for NetworkAuthenticationType {
from(value: i32) -> Self2443     fn from(value: i32) -> Self {
2444         Self(value)
2445     }
2446 }
2447 unsafe impl ::windows::runtime::Abi for NetworkAuthenticationType {
2448     type Abi = Self;
2449     type DefaultType = Self;
2450 }
2451 unsafe impl ::windows::runtime::RuntimeType for NetworkAuthenticationType {
2452     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.NetworkAuthenticationType;i4)");
2453 }
2454 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2455 #[repr(transparent)]
2456 pub struct NetworkConnectivityLevel(pub i32);
2457 impl NetworkConnectivityLevel {
2458     pub const None: NetworkConnectivityLevel = NetworkConnectivityLevel(0i32);
2459     pub const LocalAccess: NetworkConnectivityLevel = NetworkConnectivityLevel(1i32);
2460     pub const ConstrainedInternetAccess: NetworkConnectivityLevel = NetworkConnectivityLevel(2i32);
2461     pub const InternetAccess: NetworkConnectivityLevel = NetworkConnectivityLevel(3i32);
2462 }
2463 impl ::std::convert::From<i32> for NetworkConnectivityLevel {
from(value: i32) -> Self2464     fn from(value: i32) -> Self {
2465         Self(value)
2466     }
2467 }
2468 unsafe impl ::windows::runtime::Abi for NetworkConnectivityLevel {
2469     type Abi = Self;
2470     type DefaultType = Self;
2471 }
2472 unsafe impl ::windows::runtime::RuntimeType for NetworkConnectivityLevel {
2473     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.NetworkConnectivityLevel;i4)");
2474 }
2475 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2476 #[repr(transparent)]
2477 pub struct NetworkCostType(pub i32);
2478 impl NetworkCostType {
2479     pub const Unknown: NetworkCostType = NetworkCostType(0i32);
2480     pub const Unrestricted: NetworkCostType = NetworkCostType(1i32);
2481     pub const Fixed: NetworkCostType = NetworkCostType(2i32);
2482     pub const Variable: NetworkCostType = NetworkCostType(3i32);
2483 }
2484 impl ::std::convert::From<i32> for NetworkCostType {
from(value: i32) -> Self2485     fn from(value: i32) -> Self {
2486         Self(value)
2487     }
2488 }
2489 unsafe impl ::windows::runtime::Abi for NetworkCostType {
2490     type Abi = Self;
2491     type DefaultType = Self;
2492 }
2493 unsafe impl ::windows::runtime::RuntimeType for NetworkCostType {
2494     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.NetworkCostType;i4)");
2495 }
2496 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2497 #[repr(transparent)]
2498 pub struct NetworkEncryptionType(pub i32);
2499 impl NetworkEncryptionType {
2500     pub const None: NetworkEncryptionType = NetworkEncryptionType(0i32);
2501     pub const Unknown: NetworkEncryptionType = NetworkEncryptionType(1i32);
2502     pub const Wep: NetworkEncryptionType = NetworkEncryptionType(2i32);
2503     pub const Wep40: NetworkEncryptionType = NetworkEncryptionType(3i32);
2504     pub const Wep104: NetworkEncryptionType = NetworkEncryptionType(4i32);
2505     pub const Tkip: NetworkEncryptionType = NetworkEncryptionType(5i32);
2506     pub const Ccmp: NetworkEncryptionType = NetworkEncryptionType(6i32);
2507     pub const WpaUseGroup: NetworkEncryptionType = NetworkEncryptionType(7i32);
2508     pub const RsnUseGroup: NetworkEncryptionType = NetworkEncryptionType(8i32);
2509     pub const Ihv: NetworkEncryptionType = NetworkEncryptionType(9i32);
2510     pub const Gcmp: NetworkEncryptionType = NetworkEncryptionType(10i32);
2511     pub const Gcmp256: NetworkEncryptionType = NetworkEncryptionType(11i32);
2512 }
2513 impl ::std::convert::From<i32> for NetworkEncryptionType {
from(value: i32) -> Self2514     fn from(value: i32) -> Self {
2515         Self(value)
2516     }
2517 }
2518 unsafe impl ::windows::runtime::Abi for NetworkEncryptionType {
2519     type Abi = Self;
2520     type DefaultType = Self;
2521 }
2522 unsafe impl ::windows::runtime::RuntimeType for NetworkEncryptionType {
2523     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.NetworkEncryptionType;i4)");
2524 }
2525 pub struct NetworkInformation {}
2526 impl NetworkInformation {
2527     #[cfg(feature = "Foundation_Collections")]
GetConnectionProfiles() -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<ConnectionProfile>>2528     pub fn GetConnectionProfiles() -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<ConnectionProfile>> {
2529         Self::INetworkInformationStatics(|this| unsafe {
2530             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2531             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<ConnectionProfile>>(result__)
2532         })
2533     }
GetInternetConnectionProfile() -> ::windows::runtime::Result<ConnectionProfile>2534     pub fn GetInternetConnectionProfile() -> ::windows::runtime::Result<ConnectionProfile> {
2535         Self::INetworkInformationStatics(|this| unsafe {
2536             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2537             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ConnectionProfile>(result__)
2538         })
2539     }
2540     #[cfg(feature = "Foundation_Collections")]
GetLanIdentifiers() -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<LanIdentifier>>2541     pub fn GetLanIdentifiers() -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<LanIdentifier>> {
2542         Self::INetworkInformationStatics(|this| unsafe {
2543             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2544             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<LanIdentifier>>(result__)
2545         })
2546     }
2547     #[cfg(feature = "Foundation_Collections")]
GetHostNames() -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::HostName>>2548     pub fn GetHostNames() -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::HostName>> {
2549         Self::INetworkInformationStatics(|this| unsafe {
2550             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2551             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<super::HostName>>(result__)
2552         })
2553     }
2554     #[cfg(feature = "Foundation")]
GetProxyConfigurationAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>>(uri: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ProxyConfiguration>>2555     pub fn GetProxyConfigurationAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>>(uri: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ProxyConfiguration>> {
2556         Self::INetworkInformationStatics(|this| unsafe {
2557             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2558             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), uri.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<ProxyConfiguration>>(result__)
2559         })
2560     }
2561     #[cfg(feature = "Foundation_Collections")]
GetSortedEndpointPairs<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::EndpointPair>>>(destinationlist: Param0, sortoptions: super::HostNameSortOptions) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::EndpointPair>>2562     pub fn GetSortedEndpointPairs<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::EndpointPair>>>(destinationlist: Param0, sortoptions: super::HostNameSortOptions) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::EndpointPair>> {
2563         Self::INetworkInformationStatics(|this| unsafe {
2564             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2565             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), destinationlist.into_param().abi(), sortoptions, &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<super::EndpointPair>>(result__)
2566         })
2567     }
2568     #[cfg(feature = "Foundation")]
NetworkStatusChanged<'a, Param0: ::windows::runtime::IntoParam<'a, NetworkStatusChangedEventHandler>>(networkstatushandler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>2569     pub fn NetworkStatusChanged<'a, Param0: ::windows::runtime::IntoParam<'a, NetworkStatusChangedEventHandler>>(networkstatushandler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
2570         Self::INetworkInformationStatics(|this| unsafe {
2571             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
2572             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), networkstatushandler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
2573         })
2574     }
2575     #[cfg(feature = "Foundation")]
RemoveNetworkStatusChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(eventcookie: Param0) -> ::windows::runtime::Result<()>2576     pub fn RemoveNetworkStatusChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(eventcookie: Param0) -> ::windows::runtime::Result<()> {
2577         Self::INetworkInformationStatics(|this| unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), eventcookie.into_param().abi()).ok() })
2578     }
2579     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
FindConnectionProfilesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ConnectionProfileFilter>>(pprofilefilter: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<ConnectionProfile>>>2580     pub fn FindConnectionProfilesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ConnectionProfileFilter>>(pprofilefilter: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<ConnectionProfile>>> {
2581         Self::INetworkInformationStatics2(|this| unsafe {
2582             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2583             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), pprofilefilter.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<ConnectionProfile>>>(result__)
2584         })
2585     }
INetworkInformationStatics<R, F: FnOnce(&INetworkInformationStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2586     pub fn INetworkInformationStatics<R, F: FnOnce(&INetworkInformationStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2587         static mut SHARED: ::windows::runtime::FactoryCache<NetworkInformation, INetworkInformationStatics> = ::windows::runtime::FactoryCache::new();
2588         unsafe { SHARED.call(callback) }
2589     }
INetworkInformationStatics2<R, F: FnOnce(&INetworkInformationStatics2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>2590     pub fn INetworkInformationStatics2<R, F: FnOnce(&INetworkInformationStatics2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
2591         static mut SHARED: ::windows::runtime::FactoryCache<NetworkInformation, INetworkInformationStatics2> = ::windows::runtime::FactoryCache::new();
2592         unsafe { SHARED.call(callback) }
2593     }
2594 }
2595 impl ::windows::runtime::RuntimeName for NetworkInformation {
2596     const NAME: &'static str = "Windows.Networking.Connectivity.NetworkInformation";
2597 }
2598 #[repr(transparent)]
2599 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2600 pub struct NetworkItem(::windows::runtime::IInspectable);
2601 impl NetworkItem {
NetworkId(&self) -> ::windows::runtime::Result<::windows::runtime::GUID>2602     pub fn NetworkId(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> {
2603         let this = self;
2604         unsafe {
2605             let mut result__: ::windows::runtime::GUID = ::std::mem::zeroed();
2606             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::GUID>(result__)
2607         }
2608     }
GetNetworkTypes(&self) -> ::windows::runtime::Result<NetworkTypes>2609     pub fn GetNetworkTypes(&self) -> ::windows::runtime::Result<NetworkTypes> {
2610         let this = self;
2611         unsafe {
2612             let mut result__: NetworkTypes = ::std::mem::zeroed();
2613             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkTypes>(result__)
2614         }
2615     }
2616 }
2617 unsafe impl ::windows::runtime::RuntimeType for NetworkItem {
2618     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.NetworkItem;{01bc4d39-f5e0-4567-a28c-42080c831b2b})");
2619 }
2620 unsafe impl ::windows::runtime::Interface for NetworkItem {
2621     type Vtable = INetworkItem_abi;
2622     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(29117753, 62944, 17767, [162, 140, 66, 8, 12, 131, 27, 43]);
2623 }
2624 impl ::windows::runtime::RuntimeName for NetworkItem {
2625     const NAME: &'static str = "Windows.Networking.Connectivity.NetworkItem";
2626 }
2627 impl ::std::convert::From<NetworkItem> for ::windows::runtime::IUnknown {
from(value: NetworkItem) -> Self2628     fn from(value: NetworkItem) -> Self {
2629         unsafe { ::std::mem::transmute(value) }
2630     }
2631 }
2632 impl ::std::convert::From<&NetworkItem> for ::windows::runtime::IUnknown {
from(value: &NetworkItem) -> Self2633     fn from(value: &NetworkItem) -> Self {
2634         ::std::convert::From::from(::std::clone::Clone::clone(value))
2635     }
2636 }
2637 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for NetworkItem {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2638     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2639         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2640     }
2641 }
2642 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &NetworkItem {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2643     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2644         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2645     }
2646 }
2647 impl ::std::convert::From<NetworkItem> for ::windows::runtime::IInspectable {
from(value: NetworkItem) -> Self2648     fn from(value: NetworkItem) -> Self {
2649         value.0
2650     }
2651 }
2652 impl ::std::convert::From<&NetworkItem> for ::windows::runtime::IInspectable {
from(value: &NetworkItem) -> Self2653     fn from(value: &NetworkItem) -> Self {
2654         value.0.clone()
2655     }
2656 }
2657 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for NetworkItem {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2658     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2659         ::windows::runtime::Param::Owned(self.0)
2660     }
2661 }
2662 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a NetworkItem {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2663     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2664         ::windows::runtime::Param::Borrowed(&self.0)
2665     }
2666 }
2667 unsafe impl ::std::marker::Send for NetworkItem {}
2668 unsafe impl ::std::marker::Sync for NetworkItem {}
2669 #[repr(transparent)]
2670 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2671 pub struct NetworkSecuritySettings(::windows::runtime::IInspectable);
2672 impl NetworkSecuritySettings {
NetworkAuthenticationType(&self) -> ::windows::runtime::Result<NetworkAuthenticationType>2673     pub fn NetworkAuthenticationType(&self) -> ::windows::runtime::Result<NetworkAuthenticationType> {
2674         let this = self;
2675         unsafe {
2676             let mut result__: NetworkAuthenticationType = ::std::mem::zeroed();
2677             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkAuthenticationType>(result__)
2678         }
2679     }
NetworkEncryptionType(&self) -> ::windows::runtime::Result<NetworkEncryptionType>2680     pub fn NetworkEncryptionType(&self) -> ::windows::runtime::Result<NetworkEncryptionType> {
2681         let this = self;
2682         unsafe {
2683             let mut result__: NetworkEncryptionType = ::std::mem::zeroed();
2684             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<NetworkEncryptionType>(result__)
2685         }
2686     }
2687 }
2688 unsafe impl ::windows::runtime::RuntimeType for NetworkSecuritySettings {
2689     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.NetworkSecuritySettings;{7ca07e8d-917b-4b5f-b84d-28f7a5ac5402})");
2690 }
2691 unsafe impl ::windows::runtime::Interface for NetworkSecuritySettings {
2692     type Vtable = INetworkSecuritySettings_abi;
2693     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2090892941, 37243, 19295, [184, 77, 40, 247, 165, 172, 84, 2]);
2694 }
2695 impl ::windows::runtime::RuntimeName for NetworkSecuritySettings {
2696     const NAME: &'static str = "Windows.Networking.Connectivity.NetworkSecuritySettings";
2697 }
2698 impl ::std::convert::From<NetworkSecuritySettings> for ::windows::runtime::IUnknown {
from(value: NetworkSecuritySettings) -> Self2699     fn from(value: NetworkSecuritySettings) -> Self {
2700         unsafe { ::std::mem::transmute(value) }
2701     }
2702 }
2703 impl ::std::convert::From<&NetworkSecuritySettings> for ::windows::runtime::IUnknown {
from(value: &NetworkSecuritySettings) -> Self2704     fn from(value: &NetworkSecuritySettings) -> Self {
2705         ::std::convert::From::from(::std::clone::Clone::clone(value))
2706     }
2707 }
2708 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for NetworkSecuritySettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2709     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2710         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2711     }
2712 }
2713 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &NetworkSecuritySettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2714     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2715         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2716     }
2717 }
2718 impl ::std::convert::From<NetworkSecuritySettings> for ::windows::runtime::IInspectable {
from(value: NetworkSecuritySettings) -> Self2719     fn from(value: NetworkSecuritySettings) -> Self {
2720         value.0
2721     }
2722 }
2723 impl ::std::convert::From<&NetworkSecuritySettings> for ::windows::runtime::IInspectable {
from(value: &NetworkSecuritySettings) -> Self2724     fn from(value: &NetworkSecuritySettings) -> Self {
2725         value.0.clone()
2726     }
2727 }
2728 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for NetworkSecuritySettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2729     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2730         ::windows::runtime::Param::Owned(self.0)
2731     }
2732 }
2733 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a NetworkSecuritySettings {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2734     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2735         ::windows::runtime::Param::Borrowed(&self.0)
2736     }
2737 }
2738 unsafe impl ::std::marker::Send for NetworkSecuritySettings {}
2739 unsafe impl ::std::marker::Sync for NetworkSecuritySettings {}
2740 #[repr(transparent)]
2741 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2742 pub struct NetworkStateChangeEventDetails(::windows::runtime::IInspectable);
2743 impl NetworkStateChangeEventDetails {
HasNewInternetConnectionProfile(&self) -> ::windows::runtime::Result<bool>2744     pub fn HasNewInternetConnectionProfile(&self) -> ::windows::runtime::Result<bool> {
2745         let this = self;
2746         unsafe {
2747             let mut result__: bool = ::std::mem::zeroed();
2748             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2749         }
2750     }
HasNewConnectionCost(&self) -> ::windows::runtime::Result<bool>2751     pub fn HasNewConnectionCost(&self) -> ::windows::runtime::Result<bool> {
2752         let this = self;
2753         unsafe {
2754             let mut result__: bool = ::std::mem::zeroed();
2755             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2756         }
2757     }
HasNewNetworkConnectivityLevel(&self) -> ::windows::runtime::Result<bool>2758     pub fn HasNewNetworkConnectivityLevel(&self) -> ::windows::runtime::Result<bool> {
2759         let this = self;
2760         unsafe {
2761             let mut result__: bool = ::std::mem::zeroed();
2762             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2763         }
2764     }
HasNewDomainConnectivityLevel(&self) -> ::windows::runtime::Result<bool>2765     pub fn HasNewDomainConnectivityLevel(&self) -> ::windows::runtime::Result<bool> {
2766         let this = self;
2767         unsafe {
2768             let mut result__: bool = ::std::mem::zeroed();
2769             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2770         }
2771     }
HasNewHostNameList(&self) -> ::windows::runtime::Result<bool>2772     pub fn HasNewHostNameList(&self) -> ::windows::runtime::Result<bool> {
2773         let this = self;
2774         unsafe {
2775             let mut result__: bool = ::std::mem::zeroed();
2776             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2777         }
2778     }
HasNewWwanRegistrationState(&self) -> ::windows::runtime::Result<bool>2779     pub fn HasNewWwanRegistrationState(&self) -> ::windows::runtime::Result<bool> {
2780         let this = self;
2781         unsafe {
2782             let mut result__: bool = ::std::mem::zeroed();
2783             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2784         }
2785     }
HasNewTetheringOperationalState(&self) -> ::windows::runtime::Result<bool>2786     pub fn HasNewTetheringOperationalState(&self) -> ::windows::runtime::Result<bool> {
2787         let this = &::windows::runtime::Interface::cast::<INetworkStateChangeEventDetails2>(self)?;
2788         unsafe {
2789             let mut result__: bool = ::std::mem::zeroed();
2790             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2791         }
2792     }
HasNewTetheringClientCount(&self) -> ::windows::runtime::Result<bool>2793     pub fn HasNewTetheringClientCount(&self) -> ::windows::runtime::Result<bool> {
2794         let this = &::windows::runtime::Interface::cast::<INetworkStateChangeEventDetails2>(self)?;
2795         unsafe {
2796             let mut result__: bool = ::std::mem::zeroed();
2797             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2798         }
2799     }
2800 }
2801 unsafe impl ::windows::runtime::RuntimeType for NetworkStateChangeEventDetails {
2802     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.NetworkStateChangeEventDetails;{1f0cf333-d7a6-44dd-a4e9-687c476b903d})");
2803 }
2804 unsafe impl ::windows::runtime::Interface for NetworkStateChangeEventDetails {
2805     type Vtable = INetworkStateChangeEventDetails_abi;
2806     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(520942387, 55206, 17629, [164, 233, 104, 124, 71, 107, 144, 61]);
2807 }
2808 impl ::windows::runtime::RuntimeName for NetworkStateChangeEventDetails {
2809     const NAME: &'static str = "Windows.Networking.Connectivity.NetworkStateChangeEventDetails";
2810 }
2811 impl ::std::convert::From<NetworkStateChangeEventDetails> for ::windows::runtime::IUnknown {
from(value: NetworkStateChangeEventDetails) -> Self2812     fn from(value: NetworkStateChangeEventDetails) -> Self {
2813         unsafe { ::std::mem::transmute(value) }
2814     }
2815 }
2816 impl ::std::convert::From<&NetworkStateChangeEventDetails> for ::windows::runtime::IUnknown {
from(value: &NetworkStateChangeEventDetails) -> Self2817     fn from(value: &NetworkStateChangeEventDetails) -> Self {
2818         ::std::convert::From::from(::std::clone::Clone::clone(value))
2819     }
2820 }
2821 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for NetworkStateChangeEventDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2822     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2823         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2824     }
2825 }
2826 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &NetworkStateChangeEventDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2827     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2828         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2829     }
2830 }
2831 impl ::std::convert::From<NetworkStateChangeEventDetails> for ::windows::runtime::IInspectable {
from(value: NetworkStateChangeEventDetails) -> Self2832     fn from(value: NetworkStateChangeEventDetails) -> Self {
2833         value.0
2834     }
2835 }
2836 impl ::std::convert::From<&NetworkStateChangeEventDetails> for ::windows::runtime::IInspectable {
from(value: &NetworkStateChangeEventDetails) -> Self2837     fn from(value: &NetworkStateChangeEventDetails) -> Self {
2838         value.0.clone()
2839     }
2840 }
2841 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for NetworkStateChangeEventDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2842     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2843         ::windows::runtime::Param::Owned(self.0)
2844     }
2845 }
2846 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a NetworkStateChangeEventDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2847     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2848         ::windows::runtime::Param::Borrowed(&self.0)
2849     }
2850 }
2851 unsafe impl ::std::marker::Send for NetworkStateChangeEventDetails {}
2852 unsafe impl ::std::marker::Sync for NetworkStateChangeEventDetails {}
2853 #[repr(transparent)]
2854 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2855 pub struct NetworkStatusChangedEventHandler(::windows::runtime::IUnknown);
2856 impl NetworkStatusChangedEventHandler {
new<F: FnMut(&::std::option::Option<::windows::runtime::IInspectable>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self2857     pub fn new<F: FnMut(&::std::option::Option<::windows::runtime::IInspectable>) -> ::windows::runtime::Result<()> + 'static>(invoke: F) -> Self {
2858         let com = NetworkStatusChangedEventHandler_box::<F> {
2859             vtable: &NetworkStatusChangedEventHandler_box::<F>::VTABLE,
2860             count: ::windows::runtime::RefCount::new(1),
2861             invoke,
2862         };
2863         unsafe { std::mem::transmute(::std::boxed::Box::new(com)) }
2864     }
Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable>>(&self, sender: Param0) -> ::windows::runtime::Result<()>2865     pub fn Invoke<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable>>(&self, sender: Param0) -> ::windows::runtime::Result<()> {
2866         let this = self;
2867         unsafe { (::windows::runtime::Interface::vtable(this).3)(::std::mem::transmute_copy(this), sender.into_param().abi()).ok() }
2868     }
2869 }
2870 unsafe impl ::windows::runtime::RuntimeType for NetworkStatusChangedEventHandler {
2871     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"delegate({71ba143f-598e-49d0-84eb-8febaedcc195})");
2872 }
2873 unsafe impl ::windows::runtime::Interface for NetworkStatusChangedEventHandler {
2874     type Vtable = NetworkStatusChangedEventHandler_abi;
2875     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1908020287, 22926, 18896, [132, 235, 143, 235, 174, 220, 193, 149]);
2876 }
2877 #[repr(C)]
2878 #[doc(hidden)]
2879 pub struct NetworkStatusChangedEventHandler_abi(
2880     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2881     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2882     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2883     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2884 );
2885 #[repr(C)]
2886 struct NetworkStatusChangedEventHandler_box<F: FnMut(&::std::option::Option<::windows::runtime::IInspectable>) -> ::windows::runtime::Result<()> + 'static> {
2887     vtable: *const NetworkStatusChangedEventHandler_abi,
2888     invoke: F,
2889     count: ::windows::runtime::RefCount,
2890 }
2891 impl<F: FnMut(&::std::option::Option<::windows::runtime::IInspectable>) -> ::windows::runtime::Result<()> + 'static> NetworkStatusChangedEventHandler_box<F> {
2892     const VTABLE: NetworkStatusChangedEventHandler_abi = NetworkStatusChangedEventHandler_abi(Self::QueryInterface, Self::AddRef, Self::Release, Self::Invoke);
QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT2893     unsafe extern "system" fn QueryInterface(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
2894         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
2895         *interface = if iid == &<NetworkStatusChangedEventHandler as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IUnknown as ::windows::runtime::Interface>::IID || iid == &<::windows::runtime::IAgileObject as ::windows::runtime::Interface>::IID {
2896             &mut (*this).vtable as *mut _ as _
2897         } else {
2898             ::std::ptr::null_mut()
2899         };
2900         if (*interface).is_null() {
2901             ::windows::runtime::HRESULT(0x8000_4002)
2902         } else {
2903             (*this).count.add_ref();
2904             ::windows::runtime::HRESULT(0)
2905         }
2906     }
AddRef(this: ::windows::runtime::RawPtr) -> u322907     unsafe extern "system" fn AddRef(this: ::windows::runtime::RawPtr) -> u32 {
2908         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
2909         (*this).count.add_ref()
2910     }
Release(this: ::windows::runtime::RawPtr) -> u322911     unsafe extern "system" fn Release(this: ::windows::runtime::RawPtr) -> u32 {
2912         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
2913         let remaining = (*this).count.release();
2914         if remaining == 0 {
2915             Box::from_raw(this);
2916         }
2917         remaining
2918     }
Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT2919     unsafe extern "system" fn Invoke(this: ::windows::runtime::RawPtr, sender: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT {
2920         let this = this as *mut ::windows::runtime::RawPtr as *mut Self;
2921         ((*this).invoke)(&*(&sender as *const <::windows::runtime::IInspectable as ::windows::runtime::Abi>::Abi as *const <::windows::runtime::IInspectable as ::windows::runtime::Abi>::DefaultType)).into()
2922     }
2923 }
2924 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2925 #[repr(transparent)]
2926 pub struct NetworkTypes(pub u32);
2927 impl NetworkTypes {
2928     pub const None: NetworkTypes = NetworkTypes(0u32);
2929     pub const Internet: NetworkTypes = NetworkTypes(1u32);
2930     pub const PrivateNetwork: NetworkTypes = NetworkTypes(2u32);
2931 }
2932 impl ::std::convert::From<u32> for NetworkTypes {
from(value: u32) -> Self2933     fn from(value: u32) -> Self {
2934         Self(value)
2935     }
2936 }
2937 unsafe impl ::windows::runtime::Abi for NetworkTypes {
2938     type Abi = Self;
2939     type DefaultType = Self;
2940 }
2941 unsafe impl ::windows::runtime::RuntimeType for NetworkTypes {
2942     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.NetworkTypes;u4)");
2943 }
2944 impl ::std::ops::BitOr for NetworkTypes {
2945     type Output = Self;
bitor(self, rhs: Self) -> Self2946     fn bitor(self, rhs: Self) -> Self {
2947         Self(self.0 | rhs.0)
2948     }
2949 }
2950 impl ::std::ops::BitAnd for NetworkTypes {
2951     type Output = Self;
bitand(self, rhs: Self) -> Self2952     fn bitand(self, rhs: Self) -> Self {
2953         Self(self.0 & rhs.0)
2954     }
2955 }
2956 impl ::std::ops::BitOrAssign for NetworkTypes {
bitor_assign(&mut self, rhs: Self)2957     fn bitor_assign(&mut self, rhs: Self) {
2958         self.0.bitor_assign(rhs.0)
2959     }
2960 }
2961 impl ::std::ops::BitAndAssign for NetworkTypes {
bitand_assign(&mut self, rhs: Self)2962     fn bitand_assign(&mut self, rhs: Self) {
2963         self.0.bitand_assign(rhs.0)
2964     }
2965 }
2966 impl ::std::ops::Not for NetworkTypes {
2967     type Output = Self;
not(self) -> Self2968     fn not(self) -> Self {
2969         Self(self.0.not())
2970     }
2971 }
2972 #[repr(transparent)]
2973 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2974 pub struct NetworkUsage(::windows::runtime::IInspectable);
2975 impl NetworkUsage {
BytesSent(&self) -> ::windows::runtime::Result<u64>2976     pub fn BytesSent(&self) -> ::windows::runtime::Result<u64> {
2977         let this = self;
2978         unsafe {
2979             let mut result__: u64 = ::std::mem::zeroed();
2980             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
2981         }
2982     }
BytesReceived(&self) -> ::windows::runtime::Result<u64>2983     pub fn BytesReceived(&self) -> ::windows::runtime::Result<u64> {
2984         let this = self;
2985         unsafe {
2986             let mut result__: u64 = ::std::mem::zeroed();
2987             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
2988         }
2989     }
2990     #[cfg(feature = "Foundation")]
ConnectionDuration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>2991     pub fn ConnectionDuration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
2992         let this = self;
2993         unsafe {
2994             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
2995             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
2996         }
2997     }
2998 }
2999 unsafe impl ::windows::runtime::RuntimeType for NetworkUsage {
3000     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.NetworkUsage;{49da8fce-9985-4927-bf5b-072b5c65f8d9})");
3001 }
3002 unsafe impl ::windows::runtime::Interface for NetworkUsage {
3003     type Vtable = INetworkUsage_abi;
3004     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1239060430, 39301, 18727, [191, 91, 7, 43, 92, 101, 248, 217]);
3005 }
3006 impl ::windows::runtime::RuntimeName for NetworkUsage {
3007     const NAME: &'static str = "Windows.Networking.Connectivity.NetworkUsage";
3008 }
3009 impl ::std::convert::From<NetworkUsage> for ::windows::runtime::IUnknown {
from(value: NetworkUsage) -> Self3010     fn from(value: NetworkUsage) -> Self {
3011         unsafe { ::std::mem::transmute(value) }
3012     }
3013 }
3014 impl ::std::convert::From<&NetworkUsage> for ::windows::runtime::IUnknown {
from(value: &NetworkUsage) -> Self3015     fn from(value: &NetworkUsage) -> Self {
3016         ::std::convert::From::from(::std::clone::Clone::clone(value))
3017     }
3018 }
3019 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for NetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3020     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3021         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3022     }
3023 }
3024 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &NetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3025     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3026         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3027     }
3028 }
3029 impl ::std::convert::From<NetworkUsage> for ::windows::runtime::IInspectable {
from(value: NetworkUsage) -> Self3030     fn from(value: NetworkUsage) -> Self {
3031         value.0
3032     }
3033 }
3034 impl ::std::convert::From<&NetworkUsage> for ::windows::runtime::IInspectable {
from(value: &NetworkUsage) -> Self3035     fn from(value: &NetworkUsage) -> Self {
3036         value.0.clone()
3037     }
3038 }
3039 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for NetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3040     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3041         ::windows::runtime::Param::Owned(self.0)
3042     }
3043 }
3044 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a NetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3045     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3046         ::windows::runtime::Param::Borrowed(&self.0)
3047     }
3048 }
3049 unsafe impl ::std::marker::Send for NetworkUsage {}
3050 unsafe impl ::std::marker::Sync for NetworkUsage {}
3051 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3052 #[repr(C)]
3053 pub struct NetworkUsageStates {
3054     pub Roaming: TriStates,
3055     pub Shared: TriStates,
3056 }
3057 impl NetworkUsageStates {}
3058 impl ::std::default::Default for NetworkUsageStates {
default() -> Self3059     fn default() -> Self {
3060         unsafe { ::std::mem::zeroed() }
3061     }
3062 }
3063 impl ::std::fmt::Debug for NetworkUsageStates {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3064     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3065         fmt.debug_struct("NetworkUsageStates").field("Roaming", &self.Roaming).field("Shared", &self.Shared).finish()
3066     }
3067 }
3068 impl ::std::cmp::PartialEq for NetworkUsageStates {
eq(&self, other: &Self) -> bool3069     fn eq(&self, other: &Self) -> bool {
3070         self.Roaming == other.Roaming && self.Shared == other.Shared
3071     }
3072 }
3073 impl ::std::cmp::Eq for NetworkUsageStates {}
3074 unsafe impl ::windows::runtime::Abi for NetworkUsageStates {
3075     type Abi = Self;
3076     type DefaultType = Self;
3077 }
3078 unsafe impl ::windows::runtime::RuntimeType for NetworkUsageStates {
3079     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"struct(Windows.Networking.Connectivity.NetworkUsageStates;enum(Windows.Networking.Connectivity.TriStates;i4);enum(Windows.Networking.Connectivity.TriStates;i4))");
3080 }
3081 #[repr(transparent)]
3082 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3083 pub struct ProviderNetworkUsage(::windows::runtime::IInspectable);
3084 impl ProviderNetworkUsage {
BytesSent(&self) -> ::windows::runtime::Result<u64>3085     pub fn BytesSent(&self) -> ::windows::runtime::Result<u64> {
3086         let this = self;
3087         unsafe {
3088             let mut result__: u64 = ::std::mem::zeroed();
3089             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
3090         }
3091     }
BytesReceived(&self) -> ::windows::runtime::Result<u64>3092     pub fn BytesReceived(&self) -> ::windows::runtime::Result<u64> {
3093         let this = self;
3094         unsafe {
3095             let mut result__: u64 = ::std::mem::zeroed();
3096             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
3097         }
3098     }
ProviderId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>3099     pub fn ProviderId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
3100         let this = self;
3101         unsafe {
3102             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
3103             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
3104         }
3105     }
3106 }
3107 unsafe impl ::windows::runtime::RuntimeType for ProviderNetworkUsage {
3108     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.ProviderNetworkUsage;{5ec69e04-7931-48c8-b8f3-46300fa42728})");
3109 }
3110 unsafe impl ::windows::runtime::Interface for ProviderNetworkUsage {
3111     type Vtable = IProviderNetworkUsage_abi;
3112     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1590074884, 31025, 18632, [184, 243, 70, 48, 15, 164, 39, 40]);
3113 }
3114 impl ::windows::runtime::RuntimeName for ProviderNetworkUsage {
3115     const NAME: &'static str = "Windows.Networking.Connectivity.ProviderNetworkUsage";
3116 }
3117 impl ::std::convert::From<ProviderNetworkUsage> for ::windows::runtime::IUnknown {
from(value: ProviderNetworkUsage) -> Self3118     fn from(value: ProviderNetworkUsage) -> Self {
3119         unsafe { ::std::mem::transmute(value) }
3120     }
3121 }
3122 impl ::std::convert::From<&ProviderNetworkUsage> for ::windows::runtime::IUnknown {
from(value: &ProviderNetworkUsage) -> Self3123     fn from(value: &ProviderNetworkUsage) -> Self {
3124         ::std::convert::From::from(::std::clone::Clone::clone(value))
3125     }
3126 }
3127 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ProviderNetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3128     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3129         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3130     }
3131 }
3132 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ProviderNetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3133     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3134         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3135     }
3136 }
3137 impl ::std::convert::From<ProviderNetworkUsage> for ::windows::runtime::IInspectable {
from(value: ProviderNetworkUsage) -> Self3138     fn from(value: ProviderNetworkUsage) -> Self {
3139         value.0
3140     }
3141 }
3142 impl ::std::convert::From<&ProviderNetworkUsage> for ::windows::runtime::IInspectable {
from(value: &ProviderNetworkUsage) -> Self3143     fn from(value: &ProviderNetworkUsage) -> Self {
3144         value.0.clone()
3145     }
3146 }
3147 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ProviderNetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3148     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3149         ::windows::runtime::Param::Owned(self.0)
3150     }
3151 }
3152 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ProviderNetworkUsage {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3153     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3154         ::windows::runtime::Param::Borrowed(&self.0)
3155     }
3156 }
3157 unsafe impl ::std::marker::Send for ProviderNetworkUsage {}
3158 unsafe impl ::std::marker::Sync for ProviderNetworkUsage {}
3159 #[repr(transparent)]
3160 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3161 pub struct ProxyConfiguration(::windows::runtime::IInspectable);
3162 impl ProxyConfiguration {
3163     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
ProxyUris(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::super::Foundation::Uri>>3164     pub fn ProxyUris(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<super::super::Foundation::Uri>> {
3165         let this = self;
3166         unsafe {
3167             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3168             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<super::super::Foundation::Uri>>(result__)
3169         }
3170     }
CanConnectDirectly(&self) -> ::windows::runtime::Result<bool>3171     pub fn CanConnectDirectly(&self) -> ::windows::runtime::Result<bool> {
3172         let this = self;
3173         unsafe {
3174             let mut result__: bool = ::std::mem::zeroed();
3175             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
3176         }
3177     }
3178 }
3179 unsafe impl ::windows::runtime::RuntimeType for ProxyConfiguration {
3180     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.ProxyConfiguration;{ef3a60b4-9004-4dd6-b7d8-b3e502f4aad0})");
3181 }
3182 unsafe impl ::windows::runtime::Interface for ProxyConfiguration {
3183     type Vtable = IProxyConfiguration_abi;
3184     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4013580468, 36868, 19926, [183, 216, 179, 229, 2, 244, 170, 208]);
3185 }
3186 impl ::windows::runtime::RuntimeName for ProxyConfiguration {
3187     const NAME: &'static str = "Windows.Networking.Connectivity.ProxyConfiguration";
3188 }
3189 impl ::std::convert::From<ProxyConfiguration> for ::windows::runtime::IUnknown {
from(value: ProxyConfiguration) -> Self3190     fn from(value: ProxyConfiguration) -> Self {
3191         unsafe { ::std::mem::transmute(value) }
3192     }
3193 }
3194 impl ::std::convert::From<&ProxyConfiguration> for ::windows::runtime::IUnknown {
from(value: &ProxyConfiguration) -> Self3195     fn from(value: &ProxyConfiguration) -> Self {
3196         ::std::convert::From::from(::std::clone::Clone::clone(value))
3197     }
3198 }
3199 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ProxyConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3200     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3201         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3202     }
3203 }
3204 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ProxyConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3205     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3206         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3207     }
3208 }
3209 impl ::std::convert::From<ProxyConfiguration> for ::windows::runtime::IInspectable {
from(value: ProxyConfiguration) -> Self3210     fn from(value: ProxyConfiguration) -> Self {
3211         value.0
3212     }
3213 }
3214 impl ::std::convert::From<&ProxyConfiguration> for ::windows::runtime::IInspectable {
from(value: &ProxyConfiguration) -> Self3215     fn from(value: &ProxyConfiguration) -> Self {
3216         value.0.clone()
3217     }
3218 }
3219 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ProxyConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3220     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3221         ::windows::runtime::Param::Owned(self.0)
3222     }
3223 }
3224 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ProxyConfiguration {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3225     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3226         ::windows::runtime::Param::Borrowed(&self.0)
3227     }
3228 }
3229 unsafe impl ::std::marker::Send for ProxyConfiguration {}
3230 unsafe impl ::std::marker::Sync for ProxyConfiguration {}
3231 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3232 #[repr(transparent)]
3233 pub struct RoamingStates(pub u32);
3234 impl RoamingStates {
3235     pub const None: RoamingStates = RoamingStates(0u32);
3236     pub const NotRoaming: RoamingStates = RoamingStates(1u32);
3237     pub const Roaming: RoamingStates = RoamingStates(2u32);
3238 }
3239 impl ::std::convert::From<u32> for RoamingStates {
from(value: u32) -> Self3240     fn from(value: u32) -> Self {
3241         Self(value)
3242     }
3243 }
3244 unsafe impl ::windows::runtime::Abi for RoamingStates {
3245     type Abi = Self;
3246     type DefaultType = Self;
3247 }
3248 unsafe impl ::windows::runtime::RuntimeType for RoamingStates {
3249     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.RoamingStates;u4)");
3250 }
3251 impl ::std::ops::BitOr for RoamingStates {
3252     type Output = Self;
bitor(self, rhs: Self) -> Self3253     fn bitor(self, rhs: Self) -> Self {
3254         Self(self.0 | rhs.0)
3255     }
3256 }
3257 impl ::std::ops::BitAnd for RoamingStates {
3258     type Output = Self;
bitand(self, rhs: Self) -> Self3259     fn bitand(self, rhs: Self) -> Self {
3260         Self(self.0 & rhs.0)
3261     }
3262 }
3263 impl ::std::ops::BitOrAssign for RoamingStates {
bitor_assign(&mut self, rhs: Self)3264     fn bitor_assign(&mut self, rhs: Self) {
3265         self.0.bitor_assign(rhs.0)
3266     }
3267 }
3268 impl ::std::ops::BitAndAssign for RoamingStates {
bitand_assign(&mut self, rhs: Self)3269     fn bitand_assign(&mut self, rhs: Self) {
3270         self.0.bitand_assign(rhs.0)
3271     }
3272 }
3273 impl ::std::ops::Not for RoamingStates {
3274     type Output = Self;
not(self) -> Self3275     fn not(self) -> Self {
3276         Self(self.0.not())
3277     }
3278 }
3279 #[repr(transparent)]
3280 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3281 pub struct RoutePolicy(::windows::runtime::IInspectable);
3282 impl RoutePolicy {
ConnectionProfile(&self) -> ::windows::runtime::Result<ConnectionProfile>3283     pub fn ConnectionProfile(&self) -> ::windows::runtime::Result<ConnectionProfile> {
3284         let this = self;
3285         unsafe {
3286             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3287             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ConnectionProfile>(result__)
3288         }
3289     }
HostName(&self) -> ::windows::runtime::Result<super::HostName>3290     pub fn HostName(&self) -> ::windows::runtime::Result<super::HostName> {
3291         let this = self;
3292         unsafe {
3293             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3294             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::HostName>(result__)
3295         }
3296     }
HostNameType(&self) -> ::windows::runtime::Result<super::DomainNameType>3297     pub fn HostNameType(&self) -> ::windows::runtime::Result<super::DomainNameType> {
3298         let this = self;
3299         unsafe {
3300             let mut result__: super::DomainNameType = ::std::mem::zeroed();
3301             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::DomainNameType>(result__)
3302         }
3303     }
CreateRoutePolicy<'a, Param0: ::windows::runtime::IntoParam<'a, ConnectionProfile>, Param1: ::windows::runtime::IntoParam<'a, super::HostName>>(connectionprofile: Param0, hostname: Param1, r#type: super::DomainNameType) -> ::windows::runtime::Result<RoutePolicy>3304     pub fn CreateRoutePolicy<'a, Param0: ::windows::runtime::IntoParam<'a, ConnectionProfile>, Param1: ::windows::runtime::IntoParam<'a, super::HostName>>(connectionprofile: Param0, hostname: Param1, r#type: super::DomainNameType) -> ::windows::runtime::Result<RoutePolicy> {
3305         Self::IRoutePolicyFactory(|this| unsafe {
3306             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3307             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), connectionprofile.into_param().abi(), hostname.into_param().abi(), r#type, &mut result__).from_abi::<RoutePolicy>(result__)
3308         })
3309     }
IRoutePolicyFactory<R, F: FnOnce(&IRoutePolicyFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>3310     pub fn IRoutePolicyFactory<R, F: FnOnce(&IRoutePolicyFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
3311         static mut SHARED: ::windows::runtime::FactoryCache<RoutePolicy, IRoutePolicyFactory> = ::windows::runtime::FactoryCache::new();
3312         unsafe { SHARED.call(callback) }
3313     }
3314 }
3315 unsafe impl ::windows::runtime::RuntimeType for RoutePolicy {
3316     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.RoutePolicy;{11abc4ac-0fc7-42e4-8742-569923b1ca11})");
3317 }
3318 unsafe impl ::windows::runtime::Interface for RoutePolicy {
3319     type Vtable = IRoutePolicy_abi;
3320     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(296469676, 4039, 17124, [135, 66, 86, 153, 35, 177, 202, 17]);
3321 }
3322 impl ::windows::runtime::RuntimeName for RoutePolicy {
3323     const NAME: &'static str = "Windows.Networking.Connectivity.RoutePolicy";
3324 }
3325 impl ::std::convert::From<RoutePolicy> for ::windows::runtime::IUnknown {
from(value: RoutePolicy) -> Self3326     fn from(value: RoutePolicy) -> Self {
3327         unsafe { ::std::mem::transmute(value) }
3328     }
3329 }
3330 impl ::std::convert::From<&RoutePolicy> for ::windows::runtime::IUnknown {
from(value: &RoutePolicy) -> Self3331     fn from(value: &RoutePolicy) -> Self {
3332         ::std::convert::From::from(::std::clone::Clone::clone(value))
3333     }
3334 }
3335 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for RoutePolicy {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3336     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3337         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3338     }
3339 }
3340 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &RoutePolicy {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3341     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3342         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3343     }
3344 }
3345 impl ::std::convert::From<RoutePolicy> for ::windows::runtime::IInspectable {
from(value: RoutePolicy) -> Self3346     fn from(value: RoutePolicy) -> Self {
3347         value.0
3348     }
3349 }
3350 impl ::std::convert::From<&RoutePolicy> for ::windows::runtime::IInspectable {
from(value: &RoutePolicy) -> Self3351     fn from(value: &RoutePolicy) -> Self {
3352         value.0.clone()
3353     }
3354 }
3355 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for RoutePolicy {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3356     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3357         ::windows::runtime::Param::Owned(self.0)
3358     }
3359 }
3360 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a RoutePolicy {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3361     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3362         ::windows::runtime::Param::Borrowed(&self.0)
3363     }
3364 }
3365 unsafe impl ::std::marker::Send for RoutePolicy {}
3366 unsafe impl ::std::marker::Sync for RoutePolicy {}
3367 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3368 #[repr(transparent)]
3369 pub struct TriStates(pub i32);
3370 impl TriStates {
3371     pub const DoNotCare: TriStates = TriStates(0i32);
3372     pub const No: TriStates = TriStates(1i32);
3373     pub const Yes: TriStates = TriStates(2i32);
3374 }
3375 impl ::std::convert::From<i32> for TriStates {
from(value: i32) -> Self3376     fn from(value: i32) -> Self {
3377         Self(value)
3378     }
3379 }
3380 unsafe impl ::windows::runtime::Abi for TriStates {
3381     type Abi = Self;
3382     type DefaultType = Self;
3383 }
3384 unsafe impl ::windows::runtime::RuntimeType for TriStates {
3385     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.TriStates;i4)");
3386 }
3387 #[repr(transparent)]
3388 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3389 pub struct WlanConnectionProfileDetails(::windows::runtime::IInspectable);
3390 impl WlanConnectionProfileDetails {
GetConnectedSsid(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>3391     pub fn GetConnectedSsid(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
3392         let this = self;
3393         unsafe {
3394             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
3395             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
3396         }
3397     }
3398 }
3399 unsafe impl ::windows::runtime::RuntimeType for WlanConnectionProfileDetails {
3400     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.WlanConnectionProfileDetails;{562098cb-b35a-4bf1-a884-b7557e88ff86})");
3401 }
3402 unsafe impl ::windows::runtime::Interface for WlanConnectionProfileDetails {
3403     type Vtable = IWlanConnectionProfileDetails_abi;
3404     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1444976843, 45914, 19441, [168, 132, 183, 85, 126, 136, 255, 134]);
3405 }
3406 impl ::windows::runtime::RuntimeName for WlanConnectionProfileDetails {
3407     const NAME: &'static str = "Windows.Networking.Connectivity.WlanConnectionProfileDetails";
3408 }
3409 impl ::std::convert::From<WlanConnectionProfileDetails> for ::windows::runtime::IUnknown {
from(value: WlanConnectionProfileDetails) -> Self3410     fn from(value: WlanConnectionProfileDetails) -> Self {
3411         unsafe { ::std::mem::transmute(value) }
3412     }
3413 }
3414 impl ::std::convert::From<&WlanConnectionProfileDetails> for ::windows::runtime::IUnknown {
from(value: &WlanConnectionProfileDetails) -> Self3415     fn from(value: &WlanConnectionProfileDetails) -> Self {
3416         ::std::convert::From::from(::std::clone::Clone::clone(value))
3417     }
3418 }
3419 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for WlanConnectionProfileDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3420     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3421         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3422     }
3423 }
3424 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &WlanConnectionProfileDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3425     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3426         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3427     }
3428 }
3429 impl ::std::convert::From<WlanConnectionProfileDetails> for ::windows::runtime::IInspectable {
from(value: WlanConnectionProfileDetails) -> Self3430     fn from(value: WlanConnectionProfileDetails) -> Self {
3431         value.0
3432     }
3433 }
3434 impl ::std::convert::From<&WlanConnectionProfileDetails> for ::windows::runtime::IInspectable {
from(value: &WlanConnectionProfileDetails) -> Self3435     fn from(value: &WlanConnectionProfileDetails) -> Self {
3436         value.0.clone()
3437     }
3438 }
3439 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for WlanConnectionProfileDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3440     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3441         ::windows::runtime::Param::Owned(self.0)
3442     }
3443 }
3444 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a WlanConnectionProfileDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3445     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3446         ::windows::runtime::Param::Borrowed(&self.0)
3447     }
3448 }
3449 unsafe impl ::std::marker::Send for WlanConnectionProfileDetails {}
3450 unsafe impl ::std::marker::Sync for WlanConnectionProfileDetails {}
3451 #[repr(transparent)]
3452 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
3453 pub struct WwanConnectionProfileDetails(::windows::runtime::IInspectable);
3454 impl WwanConnectionProfileDetails {
HomeProviderId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>3455     pub fn HomeProviderId(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
3456         let this = self;
3457         unsafe {
3458             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
3459             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
3460         }
3461     }
AccessPointName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>3462     pub fn AccessPointName(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
3463         let this = self;
3464         unsafe {
3465             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
3466             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
3467         }
3468     }
GetNetworkRegistrationState(&self) -> ::windows::runtime::Result<WwanNetworkRegistrationState>3469     pub fn GetNetworkRegistrationState(&self) -> ::windows::runtime::Result<WwanNetworkRegistrationState> {
3470         let this = self;
3471         unsafe {
3472             let mut result__: WwanNetworkRegistrationState = ::std::mem::zeroed();
3473             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<WwanNetworkRegistrationState>(result__)
3474         }
3475     }
GetCurrentDataClass(&self) -> ::windows::runtime::Result<WwanDataClass>3476     pub fn GetCurrentDataClass(&self) -> ::windows::runtime::Result<WwanDataClass> {
3477         let this = self;
3478         unsafe {
3479             let mut result__: WwanDataClass = ::std::mem::zeroed();
3480             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<WwanDataClass>(result__)
3481         }
3482     }
IPKind(&self) -> ::windows::runtime::Result<WwanNetworkIPKind>3483     pub fn IPKind(&self) -> ::windows::runtime::Result<WwanNetworkIPKind> {
3484         let this = &::windows::runtime::Interface::cast::<IWwanConnectionProfileDetails2>(self)?;
3485         unsafe {
3486             let mut result__: WwanNetworkIPKind = ::std::mem::zeroed();
3487             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<WwanNetworkIPKind>(result__)
3488         }
3489     }
3490     #[cfg(feature = "Foundation_Collections")]
PurposeGuids(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<::windows::runtime::GUID>>3491     pub fn PurposeGuids(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<::windows::runtime::GUID>> {
3492         let this = &::windows::runtime::Interface::cast::<IWwanConnectionProfileDetails2>(self)?;
3493         unsafe {
3494             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3495             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<::windows::runtime::GUID>>(result__)
3496         }
3497     }
3498 }
3499 unsafe impl ::windows::runtime::RuntimeType for WwanConnectionProfileDetails {
3500     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.Connectivity.WwanConnectionProfileDetails;{0e4da8fe-835f-4df3-82fd-df556ebc09ef})");
3501 }
3502 unsafe impl ::windows::runtime::Interface for WwanConnectionProfileDetails {
3503     type Vtable = IWwanConnectionProfileDetails_abi;
3504     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(239970558, 33631, 19955, [130, 253, 223, 85, 110, 188, 9, 239]);
3505 }
3506 impl ::windows::runtime::RuntimeName for WwanConnectionProfileDetails {
3507     const NAME: &'static str = "Windows.Networking.Connectivity.WwanConnectionProfileDetails";
3508 }
3509 impl ::std::convert::From<WwanConnectionProfileDetails> for ::windows::runtime::IUnknown {
from(value: WwanConnectionProfileDetails) -> Self3510     fn from(value: WwanConnectionProfileDetails) -> Self {
3511         unsafe { ::std::mem::transmute(value) }
3512     }
3513 }
3514 impl ::std::convert::From<&WwanConnectionProfileDetails> for ::windows::runtime::IUnknown {
from(value: &WwanConnectionProfileDetails) -> Self3515     fn from(value: &WwanConnectionProfileDetails) -> Self {
3516         ::std::convert::From::from(::std::clone::Clone::clone(value))
3517     }
3518 }
3519 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for WwanConnectionProfileDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3520     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3521         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3522     }
3523 }
3524 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &WwanConnectionProfileDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3525     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3526         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3527     }
3528 }
3529 impl ::std::convert::From<WwanConnectionProfileDetails> for ::windows::runtime::IInspectable {
from(value: WwanConnectionProfileDetails) -> Self3530     fn from(value: WwanConnectionProfileDetails) -> Self {
3531         value.0
3532     }
3533 }
3534 impl ::std::convert::From<&WwanConnectionProfileDetails> for ::windows::runtime::IInspectable {
from(value: &WwanConnectionProfileDetails) -> Self3535     fn from(value: &WwanConnectionProfileDetails) -> Self {
3536         value.0.clone()
3537     }
3538 }
3539 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for WwanConnectionProfileDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3540     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3541         ::windows::runtime::Param::Owned(self.0)
3542     }
3543 }
3544 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a WwanConnectionProfileDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3545     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3546         ::windows::runtime::Param::Borrowed(&self.0)
3547     }
3548 }
3549 unsafe impl ::std::marker::Send for WwanConnectionProfileDetails {}
3550 unsafe impl ::std::marker::Sync for WwanConnectionProfileDetails {}
3551 #[repr(C)]
3552 #[derive(:: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug, :: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy)]
3553 pub struct WwanContract(pub u8);
3554 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3555 #[repr(transparent)]
3556 pub struct WwanDataClass(pub u32);
3557 impl WwanDataClass {
3558     pub const None: WwanDataClass = WwanDataClass(0u32);
3559     pub const Gprs: WwanDataClass = WwanDataClass(1u32);
3560     pub const Edge: WwanDataClass = WwanDataClass(2u32);
3561     pub const Umts: WwanDataClass = WwanDataClass(4u32);
3562     pub const Hsdpa: WwanDataClass = WwanDataClass(8u32);
3563     pub const Hsupa: WwanDataClass = WwanDataClass(16u32);
3564     pub const LteAdvanced: WwanDataClass = WwanDataClass(32u32);
3565     pub const Cdma1xRtt: WwanDataClass = WwanDataClass(65536u32);
3566     pub const Cdma1xEvdo: WwanDataClass = WwanDataClass(131072u32);
3567     pub const Cdma1xEvdoRevA: WwanDataClass = WwanDataClass(262144u32);
3568     pub const Cdma1xEvdv: WwanDataClass = WwanDataClass(524288u32);
3569     pub const Cdma3xRtt: WwanDataClass = WwanDataClass(1048576u32);
3570     pub const Cdma1xEvdoRevB: WwanDataClass = WwanDataClass(2097152u32);
3571     pub const CdmaUmb: WwanDataClass = WwanDataClass(4194304u32);
3572     pub const Custom: WwanDataClass = WwanDataClass(2147483648u32);
3573 }
3574 impl ::std::convert::From<u32> for WwanDataClass {
from(value: u32) -> Self3575     fn from(value: u32) -> Self {
3576         Self(value)
3577     }
3578 }
3579 unsafe impl ::windows::runtime::Abi for WwanDataClass {
3580     type Abi = Self;
3581     type DefaultType = Self;
3582 }
3583 unsafe impl ::windows::runtime::RuntimeType for WwanDataClass {
3584     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.WwanDataClass;u4)");
3585 }
3586 impl ::std::ops::BitOr for WwanDataClass {
3587     type Output = Self;
bitor(self, rhs: Self) -> Self3588     fn bitor(self, rhs: Self) -> Self {
3589         Self(self.0 | rhs.0)
3590     }
3591 }
3592 impl ::std::ops::BitAnd for WwanDataClass {
3593     type Output = Self;
bitand(self, rhs: Self) -> Self3594     fn bitand(self, rhs: Self) -> Self {
3595         Self(self.0 & rhs.0)
3596     }
3597 }
3598 impl ::std::ops::BitOrAssign for WwanDataClass {
bitor_assign(&mut self, rhs: Self)3599     fn bitor_assign(&mut self, rhs: Self) {
3600         self.0.bitor_assign(rhs.0)
3601     }
3602 }
3603 impl ::std::ops::BitAndAssign for WwanDataClass {
bitand_assign(&mut self, rhs: Self)3604     fn bitand_assign(&mut self, rhs: Self) {
3605         self.0.bitand_assign(rhs.0)
3606     }
3607 }
3608 impl ::std::ops::Not for WwanDataClass {
3609     type Output = Self;
not(self) -> Self3610     fn not(self) -> Self {
3611         Self(self.0.not())
3612     }
3613 }
3614 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3615 #[repr(transparent)]
3616 pub struct WwanNetworkIPKind(pub i32);
3617 impl WwanNetworkIPKind {
3618     pub const None: WwanNetworkIPKind = WwanNetworkIPKind(0i32);
3619     pub const Ipv4: WwanNetworkIPKind = WwanNetworkIPKind(1i32);
3620     pub const Ipv6: WwanNetworkIPKind = WwanNetworkIPKind(2i32);
3621     pub const Ipv4v6: WwanNetworkIPKind = WwanNetworkIPKind(3i32);
3622     pub const Ipv4v6v4Xlat: WwanNetworkIPKind = WwanNetworkIPKind(4i32);
3623 }
3624 impl ::std::convert::From<i32> for WwanNetworkIPKind {
from(value: i32) -> Self3625     fn from(value: i32) -> Self {
3626         Self(value)
3627     }
3628 }
3629 unsafe impl ::windows::runtime::Abi for WwanNetworkIPKind {
3630     type Abi = Self;
3631     type DefaultType = Self;
3632 }
3633 unsafe impl ::windows::runtime::RuntimeType for WwanNetworkIPKind {
3634     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.WwanNetworkIPKind;i4)");
3635 }
3636 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3637 #[repr(transparent)]
3638 pub struct WwanNetworkRegistrationState(pub i32);
3639 impl WwanNetworkRegistrationState {
3640     pub const None: WwanNetworkRegistrationState = WwanNetworkRegistrationState(0i32);
3641     pub const Deregistered: WwanNetworkRegistrationState = WwanNetworkRegistrationState(1i32);
3642     pub const Searching: WwanNetworkRegistrationState = WwanNetworkRegistrationState(2i32);
3643     pub const Home: WwanNetworkRegistrationState = WwanNetworkRegistrationState(3i32);
3644     pub const Roaming: WwanNetworkRegistrationState = WwanNetworkRegistrationState(4i32);
3645     pub const Partner: WwanNetworkRegistrationState = WwanNetworkRegistrationState(5i32);
3646     pub const Denied: WwanNetworkRegistrationState = WwanNetworkRegistrationState(6i32);
3647 }
3648 impl ::std::convert::From<i32> for WwanNetworkRegistrationState {
from(value: i32) -> Self3649     fn from(value: i32) -> Self {
3650         Self(value)
3651     }
3652 }
3653 unsafe impl ::windows::runtime::Abi for WwanNetworkRegistrationState {
3654     type Abi = Self;
3655     type DefaultType = Self;
3656 }
3657 unsafe impl ::windows::runtime::RuntimeType for WwanNetworkRegistrationState {
3658     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.Connectivity.WwanNetworkRegistrationState;i4)");
3659 }
3660