1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[cfg(feature = "Devices_Geolocation_Geofencing")]
3 pub mod Geofencing;
4 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
5 #[repr(transparent)]
6 pub struct AltitudeReferenceSystem(pub i32);
7 impl AltitudeReferenceSystem {
8     pub const Unspecified: AltitudeReferenceSystem = AltitudeReferenceSystem(0i32);
9     pub const Terrain: AltitudeReferenceSystem = AltitudeReferenceSystem(1i32);
10     pub const Ellipsoid: AltitudeReferenceSystem = AltitudeReferenceSystem(2i32);
11     pub const Geoid: AltitudeReferenceSystem = AltitudeReferenceSystem(3i32);
12     pub const Surface: AltitudeReferenceSystem = AltitudeReferenceSystem(4i32);
13 }
14 impl ::std::convert::From<i32> for AltitudeReferenceSystem {
from(value: i32) -> Self15     fn from(value: i32) -> Self {
16         Self(value)
17     }
18 }
19 unsafe impl ::windows::runtime::Abi for AltitudeReferenceSystem {
20     type Abi = Self;
21     type DefaultType = Self;
22 }
23 unsafe impl ::windows::runtime::RuntimeType for AltitudeReferenceSystem {
24     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Geolocation.AltitudeReferenceSystem;i4)");
25 }
26 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
27 #[repr(C)]
28 pub struct BasicGeoposition {
29     pub Latitude: f64,
30     pub Longitude: f64,
31     pub Altitude: f64,
32 }
33 impl BasicGeoposition {}
34 impl ::std::default::Default for BasicGeoposition {
default() -> Self35     fn default() -> Self {
36         unsafe { ::std::mem::zeroed() }
37     }
38 }
39 impl ::std::fmt::Debug for BasicGeoposition {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result40     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
41         fmt.debug_struct("BasicGeoposition").field("Latitude", &self.Latitude).field("Longitude", &self.Longitude).field("Altitude", &self.Altitude).finish()
42     }
43 }
44 impl ::std::cmp::PartialEq for BasicGeoposition {
eq(&self, other: &Self) -> bool45     fn eq(&self, other: &Self) -> bool {
46         self.Latitude == other.Latitude && self.Longitude == other.Longitude && self.Altitude == other.Altitude
47     }
48 }
49 impl ::std::cmp::Eq for BasicGeoposition {}
50 unsafe impl ::windows::runtime::Abi for BasicGeoposition {
51     type Abi = Self;
52     type DefaultType = Self;
53 }
54 unsafe impl ::windows::runtime::RuntimeType for BasicGeoposition {
55     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"struct(Windows.Devices.Geolocation.BasicGeoposition;f8;f8;f8)");
56 }
57 #[repr(transparent)]
58 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
59 pub struct CivicAddress(::windows::runtime::IInspectable);
60 impl CivicAddress {
Country(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>61     pub fn Country(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
62         let this = self;
63         unsafe {
64             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
65             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
66         }
67     }
State(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>68     pub fn State(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
69         let this = self;
70         unsafe {
71             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
72             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
73         }
74     }
City(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>75     pub fn City(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
76         let this = self;
77         unsafe {
78             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
79             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
80         }
81     }
PostalCode(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>82     pub fn PostalCode(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
83         let this = self;
84         unsafe {
85             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
86             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
87         }
88     }
89     #[cfg(feature = "Foundation")]
Timestamp(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime>90     pub fn Timestamp(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> {
91         let this = self;
92         unsafe {
93             let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed();
94             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__)
95         }
96     }
97 }
98 unsafe impl ::windows::runtime::RuntimeType for CivicAddress {
99     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.CivicAddress;{a8567a1a-64f4-4d48-bcea-f6b008eca34c})");
100 }
101 unsafe impl ::windows::runtime::Interface for CivicAddress {
102     type Vtable = ICivicAddress_abi;
103     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2824239642, 25844, 19784, [188, 234, 246, 176, 8, 236, 163, 76]);
104 }
105 impl ::windows::runtime::RuntimeName for CivicAddress {
106     const NAME: &'static str = "Windows.Devices.Geolocation.CivicAddress";
107 }
108 impl ::std::convert::From<CivicAddress> for ::windows::runtime::IUnknown {
from(value: CivicAddress) -> Self109     fn from(value: CivicAddress) -> Self {
110         unsafe { ::std::mem::transmute(value) }
111     }
112 }
113 impl ::std::convert::From<&CivicAddress> for ::windows::runtime::IUnknown {
from(value: &CivicAddress) -> Self114     fn from(value: &CivicAddress) -> Self {
115         ::std::convert::From::from(::std::clone::Clone::clone(value))
116     }
117 }
118 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for CivicAddress {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>119     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
120         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
121     }
122 }
123 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &CivicAddress {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>124     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
125         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
126     }
127 }
128 impl ::std::convert::From<CivicAddress> for ::windows::runtime::IInspectable {
from(value: CivicAddress) -> Self129     fn from(value: CivicAddress) -> Self {
130         value.0
131     }
132 }
133 impl ::std::convert::From<&CivicAddress> for ::windows::runtime::IInspectable {
from(value: &CivicAddress) -> Self134     fn from(value: &CivicAddress) -> Self {
135         value.0.clone()
136     }
137 }
138 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for CivicAddress {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>139     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
140         ::windows::runtime::Param::Owned(self.0)
141     }
142 }
143 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a CivicAddress {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>144     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
145         ::windows::runtime::Param::Borrowed(&self.0)
146     }
147 }
148 unsafe impl ::std::marker::Send for CivicAddress {}
149 unsafe impl ::std::marker::Sync for CivicAddress {}
150 #[repr(transparent)]
151 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
152 pub struct GeoboundingBox(::windows::runtime::IInspectable);
153 impl GeoboundingBox {
NorthwestCorner(&self) -> ::windows::runtime::Result<BasicGeoposition>154     pub fn NorthwestCorner(&self) -> ::windows::runtime::Result<BasicGeoposition> {
155         let this = self;
156         unsafe {
157             let mut result__: BasicGeoposition = ::std::mem::zeroed();
158             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BasicGeoposition>(result__)
159         }
160     }
SoutheastCorner(&self) -> ::windows::runtime::Result<BasicGeoposition>161     pub fn SoutheastCorner(&self) -> ::windows::runtime::Result<BasicGeoposition> {
162         let this = self;
163         unsafe {
164             let mut result__: BasicGeoposition = ::std::mem::zeroed();
165             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BasicGeoposition>(result__)
166         }
167     }
Center(&self) -> ::windows::runtime::Result<BasicGeoposition>168     pub fn Center(&self) -> ::windows::runtime::Result<BasicGeoposition> {
169         let this = self;
170         unsafe {
171             let mut result__: BasicGeoposition = ::std::mem::zeroed();
172             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BasicGeoposition>(result__)
173         }
174     }
MinAltitude(&self) -> ::windows::runtime::Result<f64>175     pub fn MinAltitude(&self) -> ::windows::runtime::Result<f64> {
176         let this = self;
177         unsafe {
178             let mut result__: f64 = ::std::mem::zeroed();
179             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
180         }
181     }
MaxAltitude(&self) -> ::windows::runtime::Result<f64>182     pub fn MaxAltitude(&self) -> ::windows::runtime::Result<f64> {
183         let this = self;
184         unsafe {
185             let mut result__: f64 = ::std::mem::zeroed();
186             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
187         }
188     }
GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType>189     pub fn GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType> {
190         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
191         unsafe {
192             let mut result__: GeoshapeType = ::std::mem::zeroed();
193             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GeoshapeType>(result__)
194         }
195     }
SpatialReferenceId(&self) -> ::windows::runtime::Result<u32>196     pub fn SpatialReferenceId(&self) -> ::windows::runtime::Result<u32> {
197         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
198         unsafe {
199             let mut result__: u32 = ::std::mem::zeroed();
200             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
201         }
202     }
AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem>203     pub fn AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem> {
204         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
205         unsafe {
206             let mut result__: AltitudeReferenceSystem = ::std::mem::zeroed();
207             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AltitudeReferenceSystem>(result__)
208         }
209     }
Create<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>, Param1: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(northwestcorner: Param0, southeastcorner: Param1) -> ::windows::runtime::Result<GeoboundingBox>210     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>, Param1: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(northwestcorner: Param0, southeastcorner: Param1) -> ::windows::runtime::Result<GeoboundingBox> {
211         Self::IGeoboundingBoxFactory(|this| unsafe {
212             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
213             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), northwestcorner.into_param().abi(), southeastcorner.into_param().abi(), &mut result__).from_abi::<GeoboundingBox>(result__)
214         })
215     }
CreateWithAltitudeReference<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>, Param1: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(northwestcorner: Param0, southeastcorner: Param1, altitudereferencesystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<GeoboundingBox>216     pub fn CreateWithAltitudeReference<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>, Param1: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(northwestcorner: Param0, southeastcorner: Param1, altitudereferencesystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<GeoboundingBox> {
217         Self::IGeoboundingBoxFactory(|this| unsafe {
218             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
219             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), northwestcorner.into_param().abi(), southeastcorner.into_param().abi(), altitudereferencesystem, &mut result__).from_abi::<GeoboundingBox>(result__)
220         })
221     }
CreateWithAltitudeReferenceAndSpatialReference<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>, Param1: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(northwestcorner: Param0, southeastcorner: Param1, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<GeoboundingBox>222     pub fn CreateWithAltitudeReferenceAndSpatialReference<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>, Param1: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(northwestcorner: Param0, southeastcorner: Param1, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<GeoboundingBox> {
223         Self::IGeoboundingBoxFactory(|this| unsafe {
224             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
225             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), northwestcorner.into_param().abi(), southeastcorner.into_param().abi(), altitudereferencesystem, spatialreferenceid, &mut result__).from_abi::<GeoboundingBox>(result__)
226         })
227     }
228     #[cfg(feature = "Foundation_Collections")]
TryCompute<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0) -> ::windows::runtime::Result<GeoboundingBox>229     pub fn TryCompute<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0) -> ::windows::runtime::Result<GeoboundingBox> {
230         Self::IGeoboundingBoxStatics(|this| unsafe {
231             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
232             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), positions.into_param().abi(), &mut result__).from_abi::<GeoboundingBox>(result__)
233         })
234     }
235     #[cfg(feature = "Foundation_Collections")]
TryComputeWithAltitudeReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0, altituderefsystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<GeoboundingBox>236     pub fn TryComputeWithAltitudeReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0, altituderefsystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<GeoboundingBox> {
237         Self::IGeoboundingBoxStatics(|this| unsafe {
238             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
239             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), positions.into_param().abi(), altituderefsystem, &mut result__).from_abi::<GeoboundingBox>(result__)
240         })
241     }
242     #[cfg(feature = "Foundation_Collections")]
TryComputeWithAltitudeReferenceAndSpatialReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0, altituderefsystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<GeoboundingBox>243     pub fn TryComputeWithAltitudeReferenceAndSpatialReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0, altituderefsystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<GeoboundingBox> {
244         Self::IGeoboundingBoxStatics(|this| unsafe {
245             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
246             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), positions.into_param().abi(), altituderefsystem, spatialreferenceid, &mut result__).from_abi::<GeoboundingBox>(result__)
247         })
248     }
IGeoboundingBoxFactory<R, F: FnOnce(&IGeoboundingBoxFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>249     pub fn IGeoboundingBoxFactory<R, F: FnOnce(&IGeoboundingBoxFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
250         static mut SHARED: ::windows::runtime::FactoryCache<GeoboundingBox, IGeoboundingBoxFactory> = ::windows::runtime::FactoryCache::new();
251         unsafe { SHARED.call(callback) }
252     }
IGeoboundingBoxStatics<R, F: FnOnce(&IGeoboundingBoxStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>253     pub fn IGeoboundingBoxStatics<R, F: FnOnce(&IGeoboundingBoxStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
254         static mut SHARED: ::windows::runtime::FactoryCache<GeoboundingBox, IGeoboundingBoxStatics> = ::windows::runtime::FactoryCache::new();
255         unsafe { SHARED.call(callback) }
256     }
257 }
258 unsafe impl ::windows::runtime::RuntimeType for GeoboundingBox {
259     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.GeoboundingBox;{0896c80b-274f-43da-9a06-cbfcdaeb4ec2})");
260 }
261 unsafe impl ::windows::runtime::Interface for GeoboundingBox {
262     type Vtable = IGeoboundingBox_abi;
263     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(144099339, 10063, 17370, [154, 6, 203, 252, 218, 235, 78, 194]);
264 }
265 impl ::windows::runtime::RuntimeName for GeoboundingBox {
266     const NAME: &'static str = "Windows.Devices.Geolocation.GeoboundingBox";
267 }
268 impl ::std::convert::From<GeoboundingBox> for ::windows::runtime::IUnknown {
from(value: GeoboundingBox) -> Self269     fn from(value: GeoboundingBox) -> Self {
270         unsafe { ::std::mem::transmute(value) }
271     }
272 }
273 impl ::std::convert::From<&GeoboundingBox> for ::windows::runtime::IUnknown {
from(value: &GeoboundingBox) -> Self274     fn from(value: &GeoboundingBox) -> Self {
275         ::std::convert::From::from(::std::clone::Clone::clone(value))
276     }
277 }
278 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GeoboundingBox {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>279     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
280         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
281     }
282 }
283 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GeoboundingBox {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>284     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
285         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
286     }
287 }
288 impl ::std::convert::From<GeoboundingBox> for ::windows::runtime::IInspectable {
from(value: GeoboundingBox) -> Self289     fn from(value: GeoboundingBox) -> Self {
290         value.0
291     }
292 }
293 impl ::std::convert::From<&GeoboundingBox> for ::windows::runtime::IInspectable {
from(value: &GeoboundingBox) -> Self294     fn from(value: &GeoboundingBox) -> Self {
295         value.0.clone()
296     }
297 }
298 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GeoboundingBox {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>299     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
300         ::windows::runtime::Param::Owned(self.0)
301     }
302 }
303 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GeoboundingBox {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>304     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
305         ::windows::runtime::Param::Borrowed(&self.0)
306     }
307 }
308 impl ::std::convert::TryFrom<GeoboundingBox> for IGeoshape {
309     type Error = ::windows::runtime::Error;
try_from(value: GeoboundingBox) -> ::windows::runtime::Result<Self>310     fn try_from(value: GeoboundingBox) -> ::windows::runtime::Result<Self> {
311         ::std::convert::TryFrom::try_from(&value)
312     }
313 }
314 impl ::std::convert::TryFrom<&GeoboundingBox> for IGeoshape {
315     type Error = ::windows::runtime::Error;
try_from(value: &GeoboundingBox) -> ::windows::runtime::Result<Self>316     fn try_from(value: &GeoboundingBox) -> ::windows::runtime::Result<Self> {
317         ::windows::runtime::Interface::cast(value)
318     }
319 }
320 impl<'a> ::windows::runtime::IntoParam<'a, IGeoshape> for GeoboundingBox {
into_param(self) -> ::windows::runtime::Param<'a, IGeoshape>321     fn into_param(self) -> ::windows::runtime::Param<'a, IGeoshape> {
322         ::windows::runtime::IntoParam::into_param(&self)
323     }
324 }
325 impl<'a> ::windows::runtime::IntoParam<'a, IGeoshape> for &GeoboundingBox {
into_param(self) -> ::windows::runtime::Param<'a, IGeoshape>326     fn into_param(self) -> ::windows::runtime::Param<'a, IGeoshape> {
327         ::std::convert::TryInto::<IGeoshape>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
328     }
329 }
330 unsafe impl ::std::marker::Send for GeoboundingBox {}
331 unsafe impl ::std::marker::Sync for GeoboundingBox {}
332 #[repr(transparent)]
333 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
334 pub struct Geocircle(::windows::runtime::IInspectable);
335 impl Geocircle {
Center(&self) -> ::windows::runtime::Result<BasicGeoposition>336     pub fn Center(&self) -> ::windows::runtime::Result<BasicGeoposition> {
337         let this = self;
338         unsafe {
339             let mut result__: BasicGeoposition = ::std::mem::zeroed();
340             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BasicGeoposition>(result__)
341         }
342     }
Radius(&self) -> ::windows::runtime::Result<f64>343     pub fn Radius(&self) -> ::windows::runtime::Result<f64> {
344         let this = self;
345         unsafe {
346             let mut result__: f64 = ::std::mem::zeroed();
347             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
348         }
349     }
GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType>350     pub fn GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType> {
351         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
352         unsafe {
353             let mut result__: GeoshapeType = ::std::mem::zeroed();
354             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GeoshapeType>(result__)
355         }
356     }
SpatialReferenceId(&self) -> ::windows::runtime::Result<u32>357     pub fn SpatialReferenceId(&self) -> ::windows::runtime::Result<u32> {
358         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
359         unsafe {
360             let mut result__: u32 = ::std::mem::zeroed();
361             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
362         }
363     }
AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem>364     pub fn AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem> {
365         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
366         unsafe {
367             let mut result__: AltitudeReferenceSystem = ::std::mem::zeroed();
368             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AltitudeReferenceSystem>(result__)
369         }
370     }
Create<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, radius: f64) -> ::windows::runtime::Result<Geocircle>371     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, radius: f64) -> ::windows::runtime::Result<Geocircle> {
372         Self::IGeocircleFactory(|this| unsafe {
373             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
374             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), position.into_param().abi(), radius, &mut result__).from_abi::<Geocircle>(result__)
375         })
376     }
CreateWithAltitudeReferenceSystem<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, radius: f64, altitudereferencesystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<Geocircle>377     pub fn CreateWithAltitudeReferenceSystem<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, radius: f64, altitudereferencesystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<Geocircle> {
378         Self::IGeocircleFactory(|this| unsafe {
379             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
380             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), position.into_param().abi(), radius, altitudereferencesystem, &mut result__).from_abi::<Geocircle>(result__)
381         })
382     }
CreateWithAltitudeReferenceSystemAndSpatialReferenceId<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, radius: f64, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<Geocircle>383     pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, radius: f64, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<Geocircle> {
384         Self::IGeocircleFactory(|this| unsafe {
385             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
386             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), position.into_param().abi(), radius, altitudereferencesystem, spatialreferenceid, &mut result__).from_abi::<Geocircle>(result__)
387         })
388     }
IGeocircleFactory<R, F: FnOnce(&IGeocircleFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>389     pub fn IGeocircleFactory<R, F: FnOnce(&IGeocircleFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
390         static mut SHARED: ::windows::runtime::FactoryCache<Geocircle, IGeocircleFactory> = ::windows::runtime::FactoryCache::new();
391         unsafe { SHARED.call(callback) }
392     }
393 }
394 unsafe impl ::windows::runtime::RuntimeType for Geocircle {
395     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.Geocircle;{39e45843-a7f9-4e63-92a7-ba0c28d124b1})");
396 }
397 unsafe impl ::windows::runtime::Interface for Geocircle {
398     type Vtable = IGeocircle_abi;
399     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(971266115, 43001, 20067, [146, 167, 186, 12, 40, 209, 36, 177]);
400 }
401 impl ::windows::runtime::RuntimeName for Geocircle {
402     const NAME: &'static str = "Windows.Devices.Geolocation.Geocircle";
403 }
404 impl ::std::convert::From<Geocircle> for ::windows::runtime::IUnknown {
from(value: Geocircle) -> Self405     fn from(value: Geocircle) -> Self {
406         unsafe { ::std::mem::transmute(value) }
407     }
408 }
409 impl ::std::convert::From<&Geocircle> for ::windows::runtime::IUnknown {
from(value: &Geocircle) -> Self410     fn from(value: &Geocircle) -> Self {
411         ::std::convert::From::from(::std::clone::Clone::clone(value))
412     }
413 }
414 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for Geocircle {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>415     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
416         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
417     }
418 }
419 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &Geocircle {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>420     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
421         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
422     }
423 }
424 impl ::std::convert::From<Geocircle> for ::windows::runtime::IInspectable {
from(value: Geocircle) -> Self425     fn from(value: Geocircle) -> Self {
426         value.0
427     }
428 }
429 impl ::std::convert::From<&Geocircle> for ::windows::runtime::IInspectable {
from(value: &Geocircle) -> Self430     fn from(value: &Geocircle) -> Self {
431         value.0.clone()
432     }
433 }
434 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for Geocircle {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>435     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
436         ::windows::runtime::Param::Owned(self.0)
437     }
438 }
439 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a Geocircle {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>440     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
441         ::windows::runtime::Param::Borrowed(&self.0)
442     }
443 }
444 impl ::std::convert::TryFrom<Geocircle> for IGeoshape {
445     type Error = ::windows::runtime::Error;
try_from(value: Geocircle) -> ::windows::runtime::Result<Self>446     fn try_from(value: Geocircle) -> ::windows::runtime::Result<Self> {
447         ::std::convert::TryFrom::try_from(&value)
448     }
449 }
450 impl ::std::convert::TryFrom<&Geocircle> for IGeoshape {
451     type Error = ::windows::runtime::Error;
try_from(value: &Geocircle) -> ::windows::runtime::Result<Self>452     fn try_from(value: &Geocircle) -> ::windows::runtime::Result<Self> {
453         ::windows::runtime::Interface::cast(value)
454     }
455 }
456 impl<'a> ::windows::runtime::IntoParam<'a, IGeoshape> for Geocircle {
into_param(self) -> ::windows::runtime::Param<'a, IGeoshape>457     fn into_param(self) -> ::windows::runtime::Param<'a, IGeoshape> {
458         ::windows::runtime::IntoParam::into_param(&self)
459     }
460 }
461 impl<'a> ::windows::runtime::IntoParam<'a, IGeoshape> for &Geocircle {
into_param(self) -> ::windows::runtime::Param<'a, IGeoshape>462     fn into_param(self) -> ::windows::runtime::Param<'a, IGeoshape> {
463         ::std::convert::TryInto::<IGeoshape>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
464     }
465 }
466 unsafe impl ::std::marker::Send for Geocircle {}
467 unsafe impl ::std::marker::Sync for Geocircle {}
468 #[repr(transparent)]
469 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
470 pub struct Geocoordinate(::windows::runtime::IInspectable);
471 impl Geocoordinate {
472     #[cfg(feature = "deprecated")]
Latitude(&self) -> ::windows::runtime::Result<f64>473     pub fn Latitude(&self) -> ::windows::runtime::Result<f64> {
474         let this = self;
475         unsafe {
476             let mut result__: f64 = ::std::mem::zeroed();
477             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
478         }
479     }
480     #[cfg(feature = "deprecated")]
Longitude(&self) -> ::windows::runtime::Result<f64>481     pub fn Longitude(&self) -> ::windows::runtime::Result<f64> {
482         let this = self;
483         unsafe {
484             let mut result__: f64 = ::std::mem::zeroed();
485             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
486         }
487     }
488     #[cfg(feature = "deprecated")]
489     #[cfg(feature = "Foundation")]
Altitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>490     pub fn Altitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
491         let this = self;
492         unsafe {
493             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
494             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
495         }
496     }
Accuracy(&self) -> ::windows::runtime::Result<f64>497     pub fn Accuracy(&self) -> ::windows::runtime::Result<f64> {
498         let this = self;
499         unsafe {
500             let mut result__: f64 = ::std::mem::zeroed();
501             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
502         }
503     }
504     #[cfg(feature = "Foundation")]
AltitudeAccuracy(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>505     pub fn AltitudeAccuracy(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
506         let this = self;
507         unsafe {
508             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
509             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
510         }
511     }
512     #[cfg(feature = "Foundation")]
Heading(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>513     pub fn Heading(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
514         let this = self;
515         unsafe {
516             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
517             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
518         }
519     }
520     #[cfg(feature = "Foundation")]
Speed(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>521     pub fn Speed(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
522         let this = self;
523         unsafe {
524             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
525             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
526         }
527     }
528     #[cfg(feature = "Foundation")]
Timestamp(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime>529     pub fn Timestamp(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> {
530         let this = self;
531         unsafe {
532             let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed();
533             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__)
534         }
535     }
Point(&self) -> ::windows::runtime::Result<Geopoint>536     pub fn Point(&self) -> ::windows::runtime::Result<Geopoint> {
537         let this = &::windows::runtime::Interface::cast::<IGeocoordinateWithPoint>(self)?;
538         unsafe {
539             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
540             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Geopoint>(result__)
541         }
542     }
PositionSource(&self) -> ::windows::runtime::Result<PositionSource>543     pub fn PositionSource(&self) -> ::windows::runtime::Result<PositionSource> {
544         let this = &::windows::runtime::Interface::cast::<IGeocoordinateWithPositionData>(self)?;
545         unsafe {
546             let mut result__: PositionSource = ::std::mem::zeroed();
547             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<PositionSource>(result__)
548         }
549     }
SatelliteData(&self) -> ::windows::runtime::Result<GeocoordinateSatelliteData>550     pub fn SatelliteData(&self) -> ::windows::runtime::Result<GeocoordinateSatelliteData> {
551         let this = &::windows::runtime::Interface::cast::<IGeocoordinateWithPositionData>(self)?;
552         unsafe {
553             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
554             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GeocoordinateSatelliteData>(result__)
555         }
556     }
557     #[cfg(feature = "Foundation")]
PositionSourceTimestamp(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::DateTime>>558     pub fn PositionSourceTimestamp(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::DateTime>> {
559         let this = &::windows::runtime::Interface::cast::<IGeocoordinateWithPositionSourceTimestamp>(self)?;
560         unsafe {
561             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
562             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<super::super::Foundation::DateTime>>(result__)
563         }
564     }
IsRemoteSource(&self) -> ::windows::runtime::Result<bool>565     pub fn IsRemoteSource(&self) -> ::windows::runtime::Result<bool> {
566         let this = &::windows::runtime::Interface::cast::<IGeocoordinateWithRemoteSource>(self)?;
567         unsafe {
568             let mut result__: bool = ::std::mem::zeroed();
569             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
570         }
571     }
572 }
573 unsafe impl ::windows::runtime::RuntimeType for Geocoordinate {
574     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.Geocoordinate;{ee21a3aa-976a-4c70-803d-083ea55bcbc4})");
575 }
576 unsafe impl ::windows::runtime::Interface for Geocoordinate {
577     type Vtable = IGeocoordinate_abi;
578     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3995181994, 38762, 19568, [128, 61, 8, 62, 165, 91, 203, 196]);
579 }
580 impl ::windows::runtime::RuntimeName for Geocoordinate {
581     const NAME: &'static str = "Windows.Devices.Geolocation.Geocoordinate";
582 }
583 impl ::std::convert::From<Geocoordinate> for ::windows::runtime::IUnknown {
from(value: Geocoordinate) -> Self584     fn from(value: Geocoordinate) -> Self {
585         unsafe { ::std::mem::transmute(value) }
586     }
587 }
588 impl ::std::convert::From<&Geocoordinate> for ::windows::runtime::IUnknown {
from(value: &Geocoordinate) -> Self589     fn from(value: &Geocoordinate) -> Self {
590         ::std::convert::From::from(::std::clone::Clone::clone(value))
591     }
592 }
593 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for Geocoordinate {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>594     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
595         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
596     }
597 }
598 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &Geocoordinate {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>599     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
600         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
601     }
602 }
603 impl ::std::convert::From<Geocoordinate> for ::windows::runtime::IInspectable {
from(value: Geocoordinate) -> Self604     fn from(value: Geocoordinate) -> Self {
605         value.0
606     }
607 }
608 impl ::std::convert::From<&Geocoordinate> for ::windows::runtime::IInspectable {
from(value: &Geocoordinate) -> Self609     fn from(value: &Geocoordinate) -> Self {
610         value.0.clone()
611     }
612 }
613 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for Geocoordinate {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>614     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
615         ::windows::runtime::Param::Owned(self.0)
616     }
617 }
618 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a Geocoordinate {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>619     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
620         ::windows::runtime::Param::Borrowed(&self.0)
621     }
622 }
623 unsafe impl ::std::marker::Send for Geocoordinate {}
624 unsafe impl ::std::marker::Sync for Geocoordinate {}
625 #[repr(transparent)]
626 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
627 pub struct GeocoordinateSatelliteData(::windows::runtime::IInspectable);
628 impl GeocoordinateSatelliteData {
629     #[cfg(feature = "Foundation")]
PositionDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>630     pub fn PositionDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
631         let this = self;
632         unsafe {
633             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
634             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
635         }
636     }
637     #[cfg(feature = "Foundation")]
HorizontalDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>638     pub fn HorizontalDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
639         let this = self;
640         unsafe {
641             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
642             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
643         }
644     }
645     #[cfg(feature = "Foundation")]
VerticalDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>646     pub fn VerticalDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
647         let this = self;
648         unsafe {
649             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
650             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
651         }
652     }
653     #[cfg(feature = "Foundation")]
GeometricDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>654     pub fn GeometricDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
655         let this = &::windows::runtime::Interface::cast::<IGeocoordinateSatelliteData2>(self)?;
656         unsafe {
657             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
658             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
659         }
660     }
661     #[cfg(feature = "Foundation")]
TimeDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>662     pub fn TimeDilutionOfPrecision(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
663         let this = &::windows::runtime::Interface::cast::<IGeocoordinateSatelliteData2>(self)?;
664         unsafe {
665             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
666             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
667         }
668     }
669 }
670 unsafe impl ::windows::runtime::RuntimeType for GeocoordinateSatelliteData {
671     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.GeocoordinateSatelliteData;{c32a74d9-2608-474c-912c-06dd490f4af7})");
672 }
673 unsafe impl ::windows::runtime::Interface for GeocoordinateSatelliteData {
674     type Vtable = IGeocoordinateSatelliteData_abi;
675     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3274339545, 9736, 18252, [145, 44, 6, 221, 73, 15, 74, 247]);
676 }
677 impl ::windows::runtime::RuntimeName for GeocoordinateSatelliteData {
678     const NAME: &'static str = "Windows.Devices.Geolocation.GeocoordinateSatelliteData";
679 }
680 impl ::std::convert::From<GeocoordinateSatelliteData> for ::windows::runtime::IUnknown {
from(value: GeocoordinateSatelliteData) -> Self681     fn from(value: GeocoordinateSatelliteData) -> Self {
682         unsafe { ::std::mem::transmute(value) }
683     }
684 }
685 impl ::std::convert::From<&GeocoordinateSatelliteData> for ::windows::runtime::IUnknown {
from(value: &GeocoordinateSatelliteData) -> Self686     fn from(value: &GeocoordinateSatelliteData) -> Self {
687         ::std::convert::From::from(::std::clone::Clone::clone(value))
688     }
689 }
690 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GeocoordinateSatelliteData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>691     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
692         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
693     }
694 }
695 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GeocoordinateSatelliteData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>696     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
697         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
698     }
699 }
700 impl ::std::convert::From<GeocoordinateSatelliteData> for ::windows::runtime::IInspectable {
from(value: GeocoordinateSatelliteData) -> Self701     fn from(value: GeocoordinateSatelliteData) -> Self {
702         value.0
703     }
704 }
705 impl ::std::convert::From<&GeocoordinateSatelliteData> for ::windows::runtime::IInspectable {
from(value: &GeocoordinateSatelliteData) -> Self706     fn from(value: &GeocoordinateSatelliteData) -> Self {
707         value.0.clone()
708     }
709 }
710 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GeocoordinateSatelliteData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>711     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
712         ::windows::runtime::Param::Owned(self.0)
713     }
714 }
715 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GeocoordinateSatelliteData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>716     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
717         ::windows::runtime::Param::Borrowed(&self.0)
718     }
719 }
720 unsafe impl ::std::marker::Send for GeocoordinateSatelliteData {}
721 unsafe impl ::std::marker::Sync for GeocoordinateSatelliteData {}
722 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
723 #[repr(transparent)]
724 pub struct GeolocationAccessStatus(pub i32);
725 impl GeolocationAccessStatus {
726     pub const Unspecified: GeolocationAccessStatus = GeolocationAccessStatus(0i32);
727     pub const Allowed: GeolocationAccessStatus = GeolocationAccessStatus(1i32);
728     pub const Denied: GeolocationAccessStatus = GeolocationAccessStatus(2i32);
729 }
730 impl ::std::convert::From<i32> for GeolocationAccessStatus {
from(value: i32) -> Self731     fn from(value: i32) -> Self {
732         Self(value)
733     }
734 }
735 unsafe impl ::windows::runtime::Abi for GeolocationAccessStatus {
736     type Abi = Self;
737     type DefaultType = Self;
738 }
739 unsafe impl ::windows::runtime::RuntimeType for GeolocationAccessStatus {
740     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Geolocation.GeolocationAccessStatus;i4)");
741 }
742 #[repr(transparent)]
743 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
744 pub struct Geolocator(::windows::runtime::IInspectable);
745 impl Geolocator {
new() -> ::windows::runtime::Result<Self>746     pub fn new() -> ::windows::runtime::Result<Self> {
747         Self::IActivationFactory(|f| f.activate_instance::<Self>())
748     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>749     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
750         static mut SHARED: ::windows::runtime::FactoryCache<Geolocator, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
751         unsafe { SHARED.call(callback) }
752     }
DesiredAccuracy(&self) -> ::windows::runtime::Result<PositionAccuracy>753     pub fn DesiredAccuracy(&self) -> ::windows::runtime::Result<PositionAccuracy> {
754         let this = self;
755         unsafe {
756             let mut result__: PositionAccuracy = ::std::mem::zeroed();
757             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<PositionAccuracy>(result__)
758         }
759     }
SetDesiredAccuracy(&self, value: PositionAccuracy) -> ::windows::runtime::Result<()>760     pub fn SetDesiredAccuracy(&self, value: PositionAccuracy) -> ::windows::runtime::Result<()> {
761         let this = self;
762         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
763     }
MovementThreshold(&self) -> ::windows::runtime::Result<f64>764     pub fn MovementThreshold(&self) -> ::windows::runtime::Result<f64> {
765         let this = self;
766         unsafe {
767             let mut result__: f64 = ::std::mem::zeroed();
768             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<f64>(result__)
769         }
770     }
SetMovementThreshold(&self, value: f64) -> ::windows::runtime::Result<()>771     pub fn SetMovementThreshold(&self, value: f64) -> ::windows::runtime::Result<()> {
772         let this = self;
773         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value).ok() }
774     }
ReportInterval(&self) -> ::windows::runtime::Result<u32>775     pub fn ReportInterval(&self) -> ::windows::runtime::Result<u32> {
776         let this = self;
777         unsafe {
778             let mut result__: u32 = ::std::mem::zeroed();
779             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
780         }
781     }
SetReportInterval(&self, value: u32) -> ::windows::runtime::Result<()>782     pub fn SetReportInterval(&self, value: u32) -> ::windows::runtime::Result<()> {
783         let this = self;
784         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
785     }
LocationStatus(&self) -> ::windows::runtime::Result<PositionStatus>786     pub fn LocationStatus(&self) -> ::windows::runtime::Result<PositionStatus> {
787         let this = self;
788         unsafe {
789             let mut result__: PositionStatus = ::std::mem::zeroed();
790             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<PositionStatus>(result__)
791         }
792     }
793     #[cfg(feature = "Foundation")]
GetGeopositionAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<Geoposition>>794     pub fn GetGeopositionAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<Geoposition>> {
795         let this = self;
796         unsafe {
797             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
798             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<Geoposition>>(result__)
799         }
800     }
801     #[cfg(feature = "Foundation")]
GetGeopositionAsyncWithAgeAndTimeout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, maximumage: Param0, timeout: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<Geoposition>>802     pub fn GetGeopositionAsyncWithAgeAndTimeout<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(&self, maximumage: Param0, timeout: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<Geoposition>> {
803         let this = self;
804         unsafe {
805             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
806             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), maximumage.into_param().abi(), timeout.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<Geoposition>>(result__)
807         }
808     }
809     #[cfg(feature = "Foundation")]
PositionChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<Geolocator, PositionChangedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>810     pub fn PositionChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<Geolocator, PositionChangedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
811         let this = self;
812         unsafe {
813             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
814             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
815         }
816     }
817     #[cfg(feature = "Foundation")]
RemovePositionChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>818     pub fn RemovePositionChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
819         let this = self;
820         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
821     }
822     #[cfg(feature = "Foundation")]
StatusChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<Geolocator, StatusChangedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>823     pub fn StatusChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<Geolocator, StatusChangedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
824         let this = self;
825         unsafe {
826             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
827             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
828         }
829     }
830     #[cfg(feature = "Foundation")]
RemoveStatusChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>831     pub fn RemoveStatusChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
832         let this = self;
833         unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
834     }
835     #[cfg(feature = "Foundation")]
DesiredAccuracyInMeters(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u32>>836     pub fn DesiredAccuracyInMeters(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<u32>> {
837         let this = &::windows::runtime::Interface::cast::<IGeolocatorWithScalarAccuracy>(self)?;
838         unsafe {
839             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
840             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<u32>>(result__)
841         }
842     }
843     #[cfg(feature = "Foundation")]
SetDesiredAccuracyInMeters<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u32>>>(&self, value: Param0) -> ::windows::runtime::Result<()>844     pub fn SetDesiredAccuracyInMeters<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<u32>>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
845         let this = &::windows::runtime::Interface::cast::<IGeolocatorWithScalarAccuracy>(self)?;
846         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
847     }
848     #[cfg(feature = "Foundation")]
RequestAccessAsync() -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<GeolocationAccessStatus>>849     pub fn RequestAccessAsync() -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<GeolocationAccessStatus>> {
850         Self::IGeolocatorStatics(|this| unsafe {
851             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
852             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<GeolocationAccessStatus>>(result__)
853         })
854     }
855     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetGeopositionHistoryAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(starttime: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<Geoposition>>>856     pub fn GetGeopositionHistoryAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(starttime: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<Geoposition>>> {
857         Self::IGeolocatorStatics(|this| unsafe {
858             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
859             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), starttime.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<Geoposition>>>(result__)
860         })
861     }
862     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetGeopositionHistoryWithDurationAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(starttime: Param0, duration: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<Geoposition>>>863     pub fn GetGeopositionHistoryWithDurationAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::TimeSpan>>(starttime: Param0, duration: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<Geoposition>>> {
864         Self::IGeolocatorStatics(|this| unsafe {
865             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
866             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), starttime.into_param().abi(), duration.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<Geoposition>>>(result__)
867         })
868     }
AllowFallbackToConsentlessPositions(&self) -> ::windows::runtime::Result<()>869     pub fn AllowFallbackToConsentlessPositions(&self) -> ::windows::runtime::Result<()> {
870         let this = &::windows::runtime::Interface::cast::<IGeolocator2>(self)?;
871         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
872     }
IsDefaultGeopositionRecommended() -> ::windows::runtime::Result<bool>873     pub fn IsDefaultGeopositionRecommended() -> ::windows::runtime::Result<bool> {
874         Self::IGeolocatorStatics2(|this| unsafe {
875             let mut result__: bool = ::std::mem::zeroed();
876             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
877         })
878     }
879     #[cfg(feature = "Foundation")]
SetDefaultGeoposition<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<BasicGeoposition>>>(value: Param0) -> ::windows::runtime::Result<()>880     pub fn SetDefaultGeoposition<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::IReference<BasicGeoposition>>>(value: Param0) -> ::windows::runtime::Result<()> {
881         Self::IGeolocatorStatics2(|this| unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() })
882     }
883     #[cfg(feature = "Foundation")]
DefaultGeoposition() -> ::windows::runtime::Result<super::super::Foundation::IReference<BasicGeoposition>>884     pub fn DefaultGeoposition() -> ::windows::runtime::Result<super::super::Foundation::IReference<BasicGeoposition>> {
885         Self::IGeolocatorStatics2(|this| unsafe {
886             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
887             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<BasicGeoposition>>(result__)
888         })
889     }
IGeolocatorStatics<R, F: FnOnce(&IGeolocatorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>890     pub fn IGeolocatorStatics<R, F: FnOnce(&IGeolocatorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
891         static mut SHARED: ::windows::runtime::FactoryCache<Geolocator, IGeolocatorStatics> = ::windows::runtime::FactoryCache::new();
892         unsafe { SHARED.call(callback) }
893     }
IGeolocatorStatics2<R, F: FnOnce(&IGeolocatorStatics2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>894     pub fn IGeolocatorStatics2<R, F: FnOnce(&IGeolocatorStatics2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
895         static mut SHARED: ::windows::runtime::FactoryCache<Geolocator, IGeolocatorStatics2> = ::windows::runtime::FactoryCache::new();
896         unsafe { SHARED.call(callback) }
897     }
898 }
899 unsafe impl ::windows::runtime::RuntimeType for Geolocator {
900     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})");
901 }
902 unsafe impl ::windows::runtime::Interface for Geolocator {
903     type Vtable = IGeolocator_abi;
904     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2848178018, 17700, 18825, [138, 169, 222, 1, 157, 46, 85, 31]);
905 }
906 impl ::windows::runtime::RuntimeName for Geolocator {
907     const NAME: &'static str = "Windows.Devices.Geolocation.Geolocator";
908 }
909 impl ::std::convert::From<Geolocator> for ::windows::runtime::IUnknown {
from(value: Geolocator) -> Self910     fn from(value: Geolocator) -> Self {
911         unsafe { ::std::mem::transmute(value) }
912     }
913 }
914 impl ::std::convert::From<&Geolocator> for ::windows::runtime::IUnknown {
from(value: &Geolocator) -> Self915     fn from(value: &Geolocator) -> Self {
916         ::std::convert::From::from(::std::clone::Clone::clone(value))
917     }
918 }
919 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for Geolocator {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>920     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
921         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
922     }
923 }
924 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &Geolocator {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>925     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
926         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
927     }
928 }
929 impl ::std::convert::From<Geolocator> for ::windows::runtime::IInspectable {
from(value: Geolocator) -> Self930     fn from(value: Geolocator) -> Self {
931         value.0
932     }
933 }
934 impl ::std::convert::From<&Geolocator> for ::windows::runtime::IInspectable {
from(value: &Geolocator) -> Self935     fn from(value: &Geolocator) -> Self {
936         value.0.clone()
937     }
938 }
939 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for Geolocator {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>940     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
941         ::windows::runtime::Param::Owned(self.0)
942     }
943 }
944 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a Geolocator {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>945     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
946         ::windows::runtime::Param::Borrowed(&self.0)
947     }
948 }
949 unsafe impl ::std::marker::Send for Geolocator {}
950 unsafe impl ::std::marker::Sync for Geolocator {}
951 #[repr(transparent)]
952 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
953 pub struct Geopath(::windows::runtime::IInspectable);
954 impl Geopath {
955     #[cfg(feature = "Foundation_Collections")]
Positions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<BasicGeoposition>>956     pub fn Positions(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<BasicGeoposition>> {
957         let this = self;
958         unsafe {
959             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
960             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<BasicGeoposition>>(result__)
961         }
962     }
GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType>963     pub fn GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType> {
964         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
965         unsafe {
966             let mut result__: GeoshapeType = ::std::mem::zeroed();
967             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GeoshapeType>(result__)
968         }
969     }
SpatialReferenceId(&self) -> ::windows::runtime::Result<u32>970     pub fn SpatialReferenceId(&self) -> ::windows::runtime::Result<u32> {
971         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
972         unsafe {
973             let mut result__: u32 = ::std::mem::zeroed();
974             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
975         }
976     }
AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem>977     pub fn AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem> {
978         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
979         unsafe {
980             let mut result__: AltitudeReferenceSystem = ::std::mem::zeroed();
981             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AltitudeReferenceSystem>(result__)
982         }
983     }
984     #[cfg(feature = "Foundation_Collections")]
Create<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0) -> ::windows::runtime::Result<Geopath>985     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0) -> ::windows::runtime::Result<Geopath> {
986         Self::IGeopathFactory(|this| unsafe {
987             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
988             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), positions.into_param().abi(), &mut result__).from_abi::<Geopath>(result__)
989         })
990     }
991     #[cfg(feature = "Foundation_Collections")]
CreateWithAltitudeReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0, altitudereferencesystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<Geopath>992     pub fn CreateWithAltitudeReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0, altitudereferencesystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<Geopath> {
993         Self::IGeopathFactory(|this| unsafe {
994             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
995             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), positions.into_param().abi(), altitudereferencesystem, &mut result__).from_abi::<Geopath>(result__)
996         })
997     }
998     #[cfg(feature = "Foundation_Collections")]
CreateWithAltitudeReferenceAndSpatialReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<Geopath>999     pub fn CreateWithAltitudeReferenceAndSpatialReference<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BasicGeoposition>>>(positions: Param0, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<Geopath> {
1000         Self::IGeopathFactory(|this| unsafe {
1001             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1002             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), positions.into_param().abi(), altitudereferencesystem, spatialreferenceid, &mut result__).from_abi::<Geopath>(result__)
1003         })
1004     }
IGeopathFactory<R, F: FnOnce(&IGeopathFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1005     pub fn IGeopathFactory<R, F: FnOnce(&IGeopathFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1006         static mut SHARED: ::windows::runtime::FactoryCache<Geopath, IGeopathFactory> = ::windows::runtime::FactoryCache::new();
1007         unsafe { SHARED.call(callback) }
1008     }
1009 }
1010 unsafe impl ::windows::runtime::RuntimeType for Geopath {
1011     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.Geopath;{e53fd7b9-2da4-4714-a652-de8593289898})");
1012 }
1013 unsafe impl ::windows::runtime::Interface for Geopath {
1014     type Vtable = IGeopath_abi;
1015     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3846166457, 11684, 18196, [166, 82, 222, 133, 147, 40, 152, 152]);
1016 }
1017 impl ::windows::runtime::RuntimeName for Geopath {
1018     const NAME: &'static str = "Windows.Devices.Geolocation.Geopath";
1019 }
1020 impl ::std::convert::From<Geopath> for ::windows::runtime::IUnknown {
from(value: Geopath) -> Self1021     fn from(value: Geopath) -> Self {
1022         unsafe { ::std::mem::transmute(value) }
1023     }
1024 }
1025 impl ::std::convert::From<&Geopath> for ::windows::runtime::IUnknown {
from(value: &Geopath) -> Self1026     fn from(value: &Geopath) -> Self {
1027         ::std::convert::From::from(::std::clone::Clone::clone(value))
1028     }
1029 }
1030 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for Geopath {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1031     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1032         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1033     }
1034 }
1035 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &Geopath {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1036     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1037         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1038     }
1039 }
1040 impl ::std::convert::From<Geopath> for ::windows::runtime::IInspectable {
from(value: Geopath) -> Self1041     fn from(value: Geopath) -> Self {
1042         value.0
1043     }
1044 }
1045 impl ::std::convert::From<&Geopath> for ::windows::runtime::IInspectable {
from(value: &Geopath) -> Self1046     fn from(value: &Geopath) -> Self {
1047         value.0.clone()
1048     }
1049 }
1050 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for Geopath {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1051     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1052         ::windows::runtime::Param::Owned(self.0)
1053     }
1054 }
1055 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a Geopath {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1056     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1057         ::windows::runtime::Param::Borrowed(&self.0)
1058     }
1059 }
1060 impl ::std::convert::TryFrom<Geopath> for IGeoshape {
1061     type Error = ::windows::runtime::Error;
try_from(value: Geopath) -> ::windows::runtime::Result<Self>1062     fn try_from(value: Geopath) -> ::windows::runtime::Result<Self> {
1063         ::std::convert::TryFrom::try_from(&value)
1064     }
1065 }
1066 impl ::std::convert::TryFrom<&Geopath> for IGeoshape {
1067     type Error = ::windows::runtime::Error;
try_from(value: &Geopath) -> ::windows::runtime::Result<Self>1068     fn try_from(value: &Geopath) -> ::windows::runtime::Result<Self> {
1069         ::windows::runtime::Interface::cast(value)
1070     }
1071 }
1072 impl<'a> ::windows::runtime::IntoParam<'a, IGeoshape> for Geopath {
into_param(self) -> ::windows::runtime::Param<'a, IGeoshape>1073     fn into_param(self) -> ::windows::runtime::Param<'a, IGeoshape> {
1074         ::windows::runtime::IntoParam::into_param(&self)
1075     }
1076 }
1077 impl<'a> ::windows::runtime::IntoParam<'a, IGeoshape> for &Geopath {
into_param(self) -> ::windows::runtime::Param<'a, IGeoshape>1078     fn into_param(self) -> ::windows::runtime::Param<'a, IGeoshape> {
1079         ::std::convert::TryInto::<IGeoshape>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1080     }
1081 }
1082 unsafe impl ::std::marker::Send for Geopath {}
1083 unsafe impl ::std::marker::Sync for Geopath {}
1084 #[repr(transparent)]
1085 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1086 pub struct Geopoint(::windows::runtime::IInspectable);
1087 impl Geopoint {
Position(&self) -> ::windows::runtime::Result<BasicGeoposition>1088     pub fn Position(&self) -> ::windows::runtime::Result<BasicGeoposition> {
1089         let this = self;
1090         unsafe {
1091             let mut result__: BasicGeoposition = ::std::mem::zeroed();
1092             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BasicGeoposition>(result__)
1093         }
1094     }
GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType>1095     pub fn GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType> {
1096         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
1097         unsafe {
1098             let mut result__: GeoshapeType = ::std::mem::zeroed();
1099             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GeoshapeType>(result__)
1100         }
1101     }
SpatialReferenceId(&self) -> ::windows::runtime::Result<u32>1102     pub fn SpatialReferenceId(&self) -> ::windows::runtime::Result<u32> {
1103         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
1104         unsafe {
1105             let mut result__: u32 = ::std::mem::zeroed();
1106             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1107         }
1108     }
AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem>1109     pub fn AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem> {
1110         let this = &::windows::runtime::Interface::cast::<IGeoshape>(self)?;
1111         unsafe {
1112             let mut result__: AltitudeReferenceSystem = ::std::mem::zeroed();
1113             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AltitudeReferenceSystem>(result__)
1114         }
1115     }
Create<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0) -> ::windows::runtime::Result<Geopoint>1116     pub fn Create<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0) -> ::windows::runtime::Result<Geopoint> {
1117         Self::IGeopointFactory(|this| unsafe {
1118             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1119             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), position.into_param().abi(), &mut result__).from_abi::<Geopoint>(result__)
1120         })
1121     }
CreateWithAltitudeReferenceSystem<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, altitudereferencesystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<Geopoint>1122     pub fn CreateWithAltitudeReferenceSystem<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, altitudereferencesystem: AltitudeReferenceSystem) -> ::windows::runtime::Result<Geopoint> {
1123         Self::IGeopointFactory(|this| unsafe {
1124             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1125             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), position.into_param().abi(), altitudereferencesystem, &mut result__).from_abi::<Geopoint>(result__)
1126         })
1127     }
CreateWithAltitudeReferenceSystemAndSpatialReferenceId<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<Geopoint>1128     pub fn CreateWithAltitudeReferenceSystemAndSpatialReferenceId<'a, Param0: ::windows::runtime::IntoParam<'a, BasicGeoposition>>(position: Param0, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32) -> ::windows::runtime::Result<Geopoint> {
1129         Self::IGeopointFactory(|this| unsafe {
1130             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1131             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), position.into_param().abi(), altitudereferencesystem, spatialreferenceid, &mut result__).from_abi::<Geopoint>(result__)
1132         })
1133     }
IGeopointFactory<R, F: FnOnce(&IGeopointFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1134     pub fn IGeopointFactory<R, F: FnOnce(&IGeopointFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1135         static mut SHARED: ::windows::runtime::FactoryCache<Geopoint, IGeopointFactory> = ::windows::runtime::FactoryCache::new();
1136         unsafe { SHARED.call(callback) }
1137     }
1138 }
1139 unsafe impl ::windows::runtime::RuntimeType for Geopoint {
1140     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.Geopoint;{6bfa00eb-e56e-49bb-9caf-cbaa78a8bcef})");
1141 }
1142 unsafe impl ::windows::runtime::Interface for Geopoint {
1143     type Vtable = IGeopoint_abi;
1144     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1811546347, 58734, 18875, [156, 175, 203, 170, 120, 168, 188, 239]);
1145 }
1146 impl ::windows::runtime::RuntimeName for Geopoint {
1147     const NAME: &'static str = "Windows.Devices.Geolocation.Geopoint";
1148 }
1149 impl ::std::convert::From<Geopoint> for ::windows::runtime::IUnknown {
from(value: Geopoint) -> Self1150     fn from(value: Geopoint) -> Self {
1151         unsafe { ::std::mem::transmute(value) }
1152     }
1153 }
1154 impl ::std::convert::From<&Geopoint> for ::windows::runtime::IUnknown {
from(value: &Geopoint) -> Self1155     fn from(value: &Geopoint) -> Self {
1156         ::std::convert::From::from(::std::clone::Clone::clone(value))
1157     }
1158 }
1159 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for Geopoint {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1160     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1161         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1162     }
1163 }
1164 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &Geopoint {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1165     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1166         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1167     }
1168 }
1169 impl ::std::convert::From<Geopoint> for ::windows::runtime::IInspectable {
from(value: Geopoint) -> Self1170     fn from(value: Geopoint) -> Self {
1171         value.0
1172     }
1173 }
1174 impl ::std::convert::From<&Geopoint> for ::windows::runtime::IInspectable {
from(value: &Geopoint) -> Self1175     fn from(value: &Geopoint) -> Self {
1176         value.0.clone()
1177     }
1178 }
1179 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for Geopoint {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1180     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1181         ::windows::runtime::Param::Owned(self.0)
1182     }
1183 }
1184 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a Geopoint {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1185     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1186         ::windows::runtime::Param::Borrowed(&self.0)
1187     }
1188 }
1189 impl ::std::convert::TryFrom<Geopoint> for IGeoshape {
1190     type Error = ::windows::runtime::Error;
try_from(value: Geopoint) -> ::windows::runtime::Result<Self>1191     fn try_from(value: Geopoint) -> ::windows::runtime::Result<Self> {
1192         ::std::convert::TryFrom::try_from(&value)
1193     }
1194 }
1195 impl ::std::convert::TryFrom<&Geopoint> for IGeoshape {
1196     type Error = ::windows::runtime::Error;
try_from(value: &Geopoint) -> ::windows::runtime::Result<Self>1197     fn try_from(value: &Geopoint) -> ::windows::runtime::Result<Self> {
1198         ::windows::runtime::Interface::cast(value)
1199     }
1200 }
1201 impl<'a> ::windows::runtime::IntoParam<'a, IGeoshape> for Geopoint {
into_param(self) -> ::windows::runtime::Param<'a, IGeoshape>1202     fn into_param(self) -> ::windows::runtime::Param<'a, IGeoshape> {
1203         ::windows::runtime::IntoParam::into_param(&self)
1204     }
1205 }
1206 impl<'a> ::windows::runtime::IntoParam<'a, IGeoshape> for &Geopoint {
into_param(self) -> ::windows::runtime::Param<'a, IGeoshape>1207     fn into_param(self) -> ::windows::runtime::Param<'a, IGeoshape> {
1208         ::std::convert::TryInto::<IGeoshape>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1209     }
1210 }
1211 unsafe impl ::std::marker::Send for Geopoint {}
1212 unsafe impl ::std::marker::Sync for Geopoint {}
1213 #[repr(transparent)]
1214 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1215 pub struct Geoposition(::windows::runtime::IInspectable);
1216 impl Geoposition {
Coordinate(&self) -> ::windows::runtime::Result<Geocoordinate>1217     pub fn Coordinate(&self) -> ::windows::runtime::Result<Geocoordinate> {
1218         let this = self;
1219         unsafe {
1220             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1221             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Geocoordinate>(result__)
1222         }
1223     }
CivicAddress(&self) -> ::windows::runtime::Result<CivicAddress>1224     pub fn CivicAddress(&self) -> ::windows::runtime::Result<CivicAddress> {
1225         let this = self;
1226         unsafe {
1227             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1228             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<CivicAddress>(result__)
1229         }
1230     }
VenueData(&self) -> ::windows::runtime::Result<VenueData>1231     pub fn VenueData(&self) -> ::windows::runtime::Result<VenueData> {
1232         let this = &::windows::runtime::Interface::cast::<IGeoposition2>(self)?;
1233         unsafe {
1234             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1235             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<VenueData>(result__)
1236         }
1237     }
1238 }
1239 unsafe impl ::windows::runtime::RuntimeType for Geoposition {
1240     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.Geoposition;{c18d0454-7d41-4ff7-a957-9dffb4ef7f5b})");
1241 }
1242 unsafe impl ::windows::runtime::Interface for Geoposition {
1243     type Vtable = IGeoposition_abi;
1244     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3247244372, 32065, 20471, [169, 87, 157, 255, 180, 239, 127, 91]);
1245 }
1246 impl ::windows::runtime::RuntimeName for Geoposition {
1247     const NAME: &'static str = "Windows.Devices.Geolocation.Geoposition";
1248 }
1249 impl ::std::convert::From<Geoposition> for ::windows::runtime::IUnknown {
from(value: Geoposition) -> Self1250     fn from(value: Geoposition) -> Self {
1251         unsafe { ::std::mem::transmute(value) }
1252     }
1253 }
1254 impl ::std::convert::From<&Geoposition> for ::windows::runtime::IUnknown {
from(value: &Geoposition) -> Self1255     fn from(value: &Geoposition) -> Self {
1256         ::std::convert::From::from(::std::clone::Clone::clone(value))
1257     }
1258 }
1259 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for Geoposition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1260     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1261         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1262     }
1263 }
1264 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &Geoposition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1265     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1266         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1267     }
1268 }
1269 impl ::std::convert::From<Geoposition> for ::windows::runtime::IInspectable {
from(value: Geoposition) -> Self1270     fn from(value: Geoposition) -> Self {
1271         value.0
1272     }
1273 }
1274 impl ::std::convert::From<&Geoposition> for ::windows::runtime::IInspectable {
from(value: &Geoposition) -> Self1275     fn from(value: &Geoposition) -> Self {
1276         value.0.clone()
1277     }
1278 }
1279 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for Geoposition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1280     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1281         ::windows::runtime::Param::Owned(self.0)
1282     }
1283 }
1284 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a Geoposition {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1285     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1286         ::windows::runtime::Param::Borrowed(&self.0)
1287     }
1288 }
1289 unsafe impl ::std::marker::Send for Geoposition {}
1290 unsafe impl ::std::marker::Sync for Geoposition {}
1291 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1292 #[repr(transparent)]
1293 pub struct GeoshapeType(pub i32);
1294 impl GeoshapeType {
1295     pub const Geopoint: GeoshapeType = GeoshapeType(0i32);
1296     pub const Geocircle: GeoshapeType = GeoshapeType(1i32);
1297     pub const Geopath: GeoshapeType = GeoshapeType(2i32);
1298     pub const GeoboundingBox: GeoshapeType = GeoshapeType(3i32);
1299 }
1300 impl ::std::convert::From<i32> for GeoshapeType {
from(value: i32) -> Self1301     fn from(value: i32) -> Self {
1302         Self(value)
1303     }
1304 }
1305 unsafe impl ::windows::runtime::Abi for GeoshapeType {
1306     type Abi = Self;
1307     type DefaultType = Self;
1308 }
1309 unsafe impl ::windows::runtime::RuntimeType for GeoshapeType {
1310     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Geolocation.GeoshapeType;i4)");
1311 }
1312 #[repr(transparent)]
1313 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1314 pub struct Geovisit(::windows::runtime::IInspectable);
1315 impl Geovisit {
Position(&self) -> ::windows::runtime::Result<Geoposition>1316     pub fn Position(&self) -> ::windows::runtime::Result<Geoposition> {
1317         let this = self;
1318         unsafe {
1319             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1320             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Geoposition>(result__)
1321         }
1322     }
StateChange(&self) -> ::windows::runtime::Result<VisitStateChange>1323     pub fn StateChange(&self) -> ::windows::runtime::Result<VisitStateChange> {
1324         let this = self;
1325         unsafe {
1326             let mut result__: VisitStateChange = ::std::mem::zeroed();
1327             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<VisitStateChange>(result__)
1328         }
1329     }
1330     #[cfg(feature = "Foundation")]
Timestamp(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime>1331     pub fn Timestamp(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> {
1332         let this = self;
1333         unsafe {
1334             let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed();
1335             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__)
1336         }
1337     }
1338 }
1339 unsafe impl ::windows::runtime::RuntimeType for Geovisit {
1340     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.Geovisit;{b1877a76-9ef6-41ab-a0dd-793ece76e2de})");
1341 }
1342 unsafe impl ::windows::runtime::Interface for Geovisit {
1343     type Vtable = IGeovisit_abi;
1344     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2978445942, 40694, 16811, [160, 221, 121, 62, 206, 118, 226, 222]);
1345 }
1346 impl ::windows::runtime::RuntimeName for Geovisit {
1347     const NAME: &'static str = "Windows.Devices.Geolocation.Geovisit";
1348 }
1349 impl ::std::convert::From<Geovisit> for ::windows::runtime::IUnknown {
from(value: Geovisit) -> Self1350     fn from(value: Geovisit) -> Self {
1351         unsafe { ::std::mem::transmute(value) }
1352     }
1353 }
1354 impl ::std::convert::From<&Geovisit> for ::windows::runtime::IUnknown {
from(value: &Geovisit) -> Self1355     fn from(value: &Geovisit) -> Self {
1356         ::std::convert::From::from(::std::clone::Clone::clone(value))
1357     }
1358 }
1359 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for Geovisit {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1360     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1361         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1362     }
1363 }
1364 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &Geovisit {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1365     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1366         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1367     }
1368 }
1369 impl ::std::convert::From<Geovisit> for ::windows::runtime::IInspectable {
from(value: Geovisit) -> Self1370     fn from(value: Geovisit) -> Self {
1371         value.0
1372     }
1373 }
1374 impl ::std::convert::From<&Geovisit> for ::windows::runtime::IInspectable {
from(value: &Geovisit) -> Self1375     fn from(value: &Geovisit) -> Self {
1376         value.0.clone()
1377     }
1378 }
1379 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for Geovisit {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1380     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1381         ::windows::runtime::Param::Owned(self.0)
1382     }
1383 }
1384 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a Geovisit {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1385     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1386         ::windows::runtime::Param::Borrowed(&self.0)
1387     }
1388 }
1389 unsafe impl ::std::marker::Send for Geovisit {}
1390 unsafe impl ::std::marker::Sync for Geovisit {}
1391 #[repr(transparent)]
1392 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1393 pub struct GeovisitMonitor(::windows::runtime::IInspectable);
1394 impl GeovisitMonitor {
new() -> ::windows::runtime::Result<Self>1395     pub fn new() -> ::windows::runtime::Result<Self> {
1396         Self::IActivationFactory(|f| f.activate_instance::<Self>())
1397     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1398     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1399         static mut SHARED: ::windows::runtime::FactoryCache<GeovisitMonitor, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
1400         unsafe { SHARED.call(callback) }
1401     }
MonitoringScope(&self) -> ::windows::runtime::Result<VisitMonitoringScope>1402     pub fn MonitoringScope(&self) -> ::windows::runtime::Result<VisitMonitoringScope> {
1403         let this = self;
1404         unsafe {
1405             let mut result__: VisitMonitoringScope = ::std::mem::zeroed();
1406             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<VisitMonitoringScope>(result__)
1407         }
1408     }
Start(&self, value: VisitMonitoringScope) -> ::windows::runtime::Result<()>1409     pub fn Start(&self, value: VisitMonitoringScope) -> ::windows::runtime::Result<()> {
1410         let this = self;
1411         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1412     }
Stop(&self) -> ::windows::runtime::Result<()>1413     pub fn Stop(&self) -> ::windows::runtime::Result<()> {
1414         let this = self;
1415         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this)).ok() }
1416     }
1417     #[cfg(feature = "Foundation")]
VisitStateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<GeovisitMonitor, GeovisitStateChangedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>1418     pub fn VisitStateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<GeovisitMonitor, GeovisitStateChangedEventArgs>>>(&self, handler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
1419         let this = self;
1420         unsafe {
1421             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
1422             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), handler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
1423         }
1424     }
1425     #[cfg(feature = "Foundation")]
RemoveVisitStateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()>1426     pub fn RemoveVisitStateChanged<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, token: Param0) -> ::windows::runtime::Result<()> {
1427         let this = self;
1428         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), token.into_param().abi()).ok() }
1429     }
1430     #[cfg(feature = "Foundation")]
GetLastReportAsync() -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<Geovisit>>1431     pub fn GetLastReportAsync() -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<Geovisit>> {
1432         Self::IGeovisitMonitorStatics(|this| unsafe {
1433             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1434             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<Geovisit>>(result__)
1435         })
1436     }
IGeovisitMonitorStatics<R, F: FnOnce(&IGeovisitMonitorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1437     pub fn IGeovisitMonitorStatics<R, F: FnOnce(&IGeovisitMonitorStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1438         static mut SHARED: ::windows::runtime::FactoryCache<GeovisitMonitor, IGeovisitMonitorStatics> = ::windows::runtime::FactoryCache::new();
1439         unsafe { SHARED.call(callback) }
1440     }
1441 }
1442 unsafe impl ::windows::runtime::RuntimeType for GeovisitMonitor {
1443     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.GeovisitMonitor;{80118aaf-5944-4591-83c1-396647f54f2c})");
1444 }
1445 unsafe impl ::windows::runtime::Interface for GeovisitMonitor {
1446     type Vtable = IGeovisitMonitor_abi;
1447     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2148633263, 22852, 17809, [131, 193, 57, 102, 71, 245, 79, 44]);
1448 }
1449 impl ::windows::runtime::RuntimeName for GeovisitMonitor {
1450     const NAME: &'static str = "Windows.Devices.Geolocation.GeovisitMonitor";
1451 }
1452 impl ::std::convert::From<GeovisitMonitor> for ::windows::runtime::IUnknown {
from(value: GeovisitMonitor) -> Self1453     fn from(value: GeovisitMonitor) -> Self {
1454         unsafe { ::std::mem::transmute(value) }
1455     }
1456 }
1457 impl ::std::convert::From<&GeovisitMonitor> for ::windows::runtime::IUnknown {
from(value: &GeovisitMonitor) -> Self1458     fn from(value: &GeovisitMonitor) -> Self {
1459         ::std::convert::From::from(::std::clone::Clone::clone(value))
1460     }
1461 }
1462 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GeovisitMonitor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1463     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1464         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1465     }
1466 }
1467 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GeovisitMonitor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1468     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1469         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1470     }
1471 }
1472 impl ::std::convert::From<GeovisitMonitor> for ::windows::runtime::IInspectable {
from(value: GeovisitMonitor) -> Self1473     fn from(value: GeovisitMonitor) -> Self {
1474         value.0
1475     }
1476 }
1477 impl ::std::convert::From<&GeovisitMonitor> for ::windows::runtime::IInspectable {
from(value: &GeovisitMonitor) -> Self1478     fn from(value: &GeovisitMonitor) -> Self {
1479         value.0.clone()
1480     }
1481 }
1482 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GeovisitMonitor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1483     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1484         ::windows::runtime::Param::Owned(self.0)
1485     }
1486 }
1487 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GeovisitMonitor {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1488     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1489         ::windows::runtime::Param::Borrowed(&self.0)
1490     }
1491 }
1492 unsafe impl ::std::marker::Send for GeovisitMonitor {}
1493 unsafe impl ::std::marker::Sync for GeovisitMonitor {}
1494 #[repr(transparent)]
1495 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1496 pub struct GeovisitStateChangedEventArgs(::windows::runtime::IInspectable);
1497 impl GeovisitStateChangedEventArgs {
Visit(&self) -> ::windows::runtime::Result<Geovisit>1498     pub fn Visit(&self) -> ::windows::runtime::Result<Geovisit> {
1499         let this = self;
1500         unsafe {
1501             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1502             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Geovisit>(result__)
1503         }
1504     }
1505 }
1506 unsafe impl ::windows::runtime::RuntimeType for GeovisitStateChangedEventArgs {
1507     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.GeovisitStateChangedEventArgs;{ceb4d1ff-8b53-4968-beed-4cecd029ce15})");
1508 }
1509 unsafe impl ::windows::runtime::Interface for GeovisitStateChangedEventArgs {
1510     type Vtable = IGeovisitStateChangedEventArgs_abi;
1511     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3467956735, 35667, 18792, [190, 237, 76, 236, 208, 41, 206, 21]);
1512 }
1513 impl ::windows::runtime::RuntimeName for GeovisitStateChangedEventArgs {
1514     const NAME: &'static str = "Windows.Devices.Geolocation.GeovisitStateChangedEventArgs";
1515 }
1516 impl ::std::convert::From<GeovisitStateChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: GeovisitStateChangedEventArgs) -> Self1517     fn from(value: GeovisitStateChangedEventArgs) -> Self {
1518         unsafe { ::std::mem::transmute(value) }
1519     }
1520 }
1521 impl ::std::convert::From<&GeovisitStateChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: &GeovisitStateChangedEventArgs) -> Self1522     fn from(value: &GeovisitStateChangedEventArgs) -> Self {
1523         ::std::convert::From::from(::std::clone::Clone::clone(value))
1524     }
1525 }
1526 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GeovisitStateChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1527     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1528         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1529     }
1530 }
1531 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GeovisitStateChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1532     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1533         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1534     }
1535 }
1536 impl ::std::convert::From<GeovisitStateChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: GeovisitStateChangedEventArgs) -> Self1537     fn from(value: GeovisitStateChangedEventArgs) -> Self {
1538         value.0
1539     }
1540 }
1541 impl ::std::convert::From<&GeovisitStateChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: &GeovisitStateChangedEventArgs) -> Self1542     fn from(value: &GeovisitStateChangedEventArgs) -> Self {
1543         value.0.clone()
1544     }
1545 }
1546 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GeovisitStateChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1547     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1548         ::windows::runtime::Param::Owned(self.0)
1549     }
1550 }
1551 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GeovisitStateChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1552     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1553         ::windows::runtime::Param::Borrowed(&self.0)
1554     }
1555 }
1556 unsafe impl ::std::marker::Send for GeovisitStateChangedEventArgs {}
1557 unsafe impl ::std::marker::Sync for GeovisitStateChangedEventArgs {}
1558 #[repr(transparent)]
1559 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1560 pub struct GeovisitTriggerDetails(::windows::runtime::IInspectable);
1561 impl GeovisitTriggerDetails {
1562     #[cfg(feature = "Foundation_Collections")]
ReadReports(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<Geovisit>>1563     pub fn ReadReports(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<Geovisit>> {
1564         let this = self;
1565         unsafe {
1566             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1567             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<Geovisit>>(result__)
1568         }
1569     }
1570 }
1571 unsafe impl ::windows::runtime::RuntimeType for GeovisitTriggerDetails {
1572     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.GeovisitTriggerDetails;{ea770d9e-d1c9-454b-99b7-b2f8cdd2482f})");
1573 }
1574 unsafe impl ::windows::runtime::Interface for GeovisitTriggerDetails {
1575     type Vtable = IGeovisitTriggerDetails_abi;
1576     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3933670814, 53705, 17739, [153, 183, 178, 248, 205, 210, 72, 47]);
1577 }
1578 impl ::windows::runtime::RuntimeName for GeovisitTriggerDetails {
1579     const NAME: &'static str = "Windows.Devices.Geolocation.GeovisitTriggerDetails";
1580 }
1581 impl ::std::convert::From<GeovisitTriggerDetails> for ::windows::runtime::IUnknown {
from(value: GeovisitTriggerDetails) -> Self1582     fn from(value: GeovisitTriggerDetails) -> Self {
1583         unsafe { ::std::mem::transmute(value) }
1584     }
1585 }
1586 impl ::std::convert::From<&GeovisitTriggerDetails> for ::windows::runtime::IUnknown {
from(value: &GeovisitTriggerDetails) -> Self1587     fn from(value: &GeovisitTriggerDetails) -> Self {
1588         ::std::convert::From::from(::std::clone::Clone::clone(value))
1589     }
1590 }
1591 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for GeovisitTriggerDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1592     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1593         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1594     }
1595 }
1596 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &GeovisitTriggerDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1597     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1598         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1599     }
1600 }
1601 impl ::std::convert::From<GeovisitTriggerDetails> for ::windows::runtime::IInspectable {
from(value: GeovisitTriggerDetails) -> Self1602     fn from(value: GeovisitTriggerDetails) -> Self {
1603         value.0
1604     }
1605 }
1606 impl ::std::convert::From<&GeovisitTriggerDetails> for ::windows::runtime::IInspectable {
from(value: &GeovisitTriggerDetails) -> Self1607     fn from(value: &GeovisitTriggerDetails) -> Self {
1608         value.0.clone()
1609     }
1610 }
1611 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for GeovisitTriggerDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1612     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1613         ::windows::runtime::Param::Owned(self.0)
1614     }
1615 }
1616 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a GeovisitTriggerDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1617     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1618         ::windows::runtime::Param::Borrowed(&self.0)
1619     }
1620 }
1621 unsafe impl ::std::marker::Send for GeovisitTriggerDetails {}
1622 unsafe impl ::std::marker::Sync for GeovisitTriggerDetails {}
1623 #[repr(transparent)]
1624 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1625 #[doc(hidden)]
1626 pub struct ICivicAddress(::windows::runtime::IInspectable);
1627 unsafe impl ::windows::runtime::Interface for ICivicAddress {
1628     type Vtable = ICivicAddress_abi;
1629     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2824239642, 25844, 19784, [188, 234, 246, 176, 8, 236, 163, 76]);
1630 }
1631 #[repr(C)]
1632 #[doc(hidden)]
1633 pub struct ICivicAddress_abi(
1634     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1635     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1636     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1637     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1638     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1639     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1641     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1642     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1644     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT,
1645     #[cfg(not(feature = "Foundation"))] usize,
1646 );
1647 #[repr(transparent)]
1648 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1649 #[doc(hidden)]
1650 pub struct IGeoboundingBox(::windows::runtime::IInspectable);
1651 unsafe impl ::windows::runtime::Interface for IGeoboundingBox {
1652     type Vtable = IGeoboundingBox_abi;
1653     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(144099339, 10063, 17370, [154, 6, 203, 252, 218, 235, 78, 194]);
1654 }
1655 #[repr(C)]
1656 #[doc(hidden)]
1657 pub struct IGeoboundingBox_abi(
1658     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1659     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1660     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1661     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1662     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1663     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1664     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BasicGeoposition) -> ::windows::runtime::HRESULT,
1665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BasicGeoposition) -> ::windows::runtime::HRESULT,
1666     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BasicGeoposition) -> ::windows::runtime::HRESULT,
1667     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
1668     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
1669 );
1670 #[repr(transparent)]
1671 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1672 #[doc(hidden)]
1673 pub struct IGeoboundingBoxFactory(::windows::runtime::IInspectable);
1674 unsafe impl ::windows::runtime::Interface for IGeoboundingBoxFactory {
1675     type Vtable = IGeoboundingBoxFactory_abi;
1676     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1308337545, 1041, 19132, [179, 181, 91, 188, 203, 87, 217, 140]);
1677 }
1678 #[repr(C)]
1679 #[doc(hidden)]
1680 pub struct IGeoboundingBoxFactory_abi(
1681     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1682     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1683     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1684     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1685     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1686     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1687     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, northwestcorner: BasicGeoposition, southeastcorner: BasicGeoposition, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1688     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, northwestcorner: BasicGeoposition, southeastcorner: BasicGeoposition, altitudereferencesystem: AltitudeReferenceSystem, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1689     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, northwestcorner: BasicGeoposition, southeastcorner: BasicGeoposition, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1690 );
1691 #[repr(transparent)]
1692 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1693 #[doc(hidden)]
1694 pub struct IGeoboundingBoxStatics(::windows::runtime::IInspectable);
1695 unsafe impl ::windows::runtime::Interface for IGeoboundingBoxStatics {
1696     type Vtable = IGeoboundingBoxStatics_abi;
1697     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1740113672, 58906, 19664, [132, 27, 147, 35, 55, 146, 181, 202]);
1698 }
1699 #[repr(C)]
1700 #[doc(hidden)]
1701 pub struct IGeoboundingBoxStatics_abi(
1702     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1703     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1704     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1707     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1708     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, positions: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1709     #[cfg(not(feature = "Foundation_Collections"))] usize,
1710     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, positions: ::windows::runtime::RawPtr, altituderefsystem: AltitudeReferenceSystem, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1711     #[cfg(not(feature = "Foundation_Collections"))] usize,
1712     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, positions: ::windows::runtime::RawPtr, altituderefsystem: AltitudeReferenceSystem, spatialreferenceid: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1713     #[cfg(not(feature = "Foundation_Collections"))] usize,
1714 );
1715 #[repr(transparent)]
1716 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1717 #[doc(hidden)]
1718 pub struct IGeocircle(::windows::runtime::IInspectable);
1719 unsafe impl ::windows::runtime::Interface for IGeocircle {
1720     type Vtable = IGeocircle_abi;
1721     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(971266115, 43001, 20067, [146, 167, 186, 12, 40, 209, 36, 177]);
1722 }
1723 #[repr(C)]
1724 #[doc(hidden)]
1725 pub struct IGeocircle_abi(
1726     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1727     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1728     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1729     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1730     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1731     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1732     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BasicGeoposition) -> ::windows::runtime::HRESULT,
1733     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
1734 );
1735 #[repr(transparent)]
1736 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1737 #[doc(hidden)]
1738 pub struct IGeocircleFactory(::windows::runtime::IInspectable);
1739 unsafe impl ::windows::runtime::Interface for IGeocircleFactory {
1740     type Vtable = IGeocircleFactory_abi;
1741     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2950058783, 29361, 20349, [135, 204, 78, 212, 201, 132, 156, 5]);
1742 }
1743 #[repr(C)]
1744 #[doc(hidden)]
1745 pub struct IGeocircleFactory_abi(
1746     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1747     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1748     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1749     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1750     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1751     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1752     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: BasicGeoposition, radius: f64, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1753     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: BasicGeoposition, radius: f64, altitudereferencesystem: AltitudeReferenceSystem, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1754     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: BasicGeoposition, radius: f64, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1755 );
1756 #[repr(transparent)]
1757 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1758 #[doc(hidden)]
1759 pub struct IGeocoordinate(::windows::runtime::IInspectable);
1760 unsafe impl ::windows::runtime::Interface for IGeocoordinate {
1761     type Vtable = IGeocoordinate_abi;
1762     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3995181994, 38762, 19568, [128, 61, 8, 62, 165, 91, 203, 196]);
1763 }
1764 #[repr(C)]
1765 #[doc(hidden)]
1766 pub struct IGeocoordinate_abi(
1767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1768     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1769     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1770     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1771     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1772     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1773     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
1774     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
1775     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1776     #[cfg(not(feature = "Foundation"))] usize,
1777     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
1778     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1779     #[cfg(not(feature = "Foundation"))] usize,
1780     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1781     #[cfg(not(feature = "Foundation"))] usize,
1782     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1783     #[cfg(not(feature = "Foundation"))] usize,
1784     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT,
1785     #[cfg(not(feature = "Foundation"))] usize,
1786 );
1787 #[repr(transparent)]
1788 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1789 #[doc(hidden)]
1790 pub struct IGeocoordinateSatelliteData(::windows::runtime::IInspectable);
1791 unsafe impl ::windows::runtime::Interface for IGeocoordinateSatelliteData {
1792     type Vtable = IGeocoordinateSatelliteData_abi;
1793     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3274339545, 9736, 18252, [145, 44, 6, 221, 73, 15, 74, 247]);
1794 }
1795 #[repr(C)]
1796 #[doc(hidden)]
1797 pub struct IGeocoordinateSatelliteData_abi(
1798     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1799     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1800     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1801     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1802     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1803     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1804     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1805     #[cfg(not(feature = "Foundation"))] usize,
1806     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1807     #[cfg(not(feature = "Foundation"))] usize,
1808     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1809     #[cfg(not(feature = "Foundation"))] usize,
1810 );
1811 #[repr(transparent)]
1812 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1813 #[doc(hidden)]
1814 pub struct IGeocoordinateSatelliteData2(::windows::runtime::IInspectable);
1815 unsafe impl ::windows::runtime::Interface for IGeocoordinateSatelliteData2 {
1816     type Vtable = IGeocoordinateSatelliteData2_abi;
1817     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1981582589, 41373, 23121, [128, 245, 113, 103, 97, 21, 72, 62]);
1818 }
1819 #[repr(C)]
1820 #[doc(hidden)]
1821 pub struct IGeocoordinateSatelliteData2_abi(
1822     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1823     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1824     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1825     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1826     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1827     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1828     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1829     #[cfg(not(feature = "Foundation"))] usize,
1830     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1831     #[cfg(not(feature = "Foundation"))] usize,
1832 );
1833 #[repr(transparent)]
1834 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1835 #[doc(hidden)]
1836 pub struct IGeocoordinateWithPoint(::windows::runtime::IInspectable);
1837 unsafe impl ::windows::runtime::Interface for IGeocoordinateWithPoint {
1838     type Vtable = IGeocoordinateWithPoint_abi;
1839     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4276749605, 53804, 19782, [181, 39, 11, 150, 6, 111, 199, 219]);
1840 }
1841 #[repr(C)]
1842 #[doc(hidden)]
1843 pub struct IGeocoordinateWithPoint_abi(
1844     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1845     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1846     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1849     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1850     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1851 );
1852 #[repr(transparent)]
1853 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1854 #[doc(hidden)]
1855 pub struct IGeocoordinateWithPositionData(::windows::runtime::IInspectable);
1856 unsafe impl ::windows::runtime::Interface for IGeocoordinateWithPositionData {
1857     type Vtable = IGeocoordinateWithPositionData_abi;
1858     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2514891966, 56278, 16556, [184, 242, 166, 92, 3, 64, 217, 166]);
1859 }
1860 #[repr(C)]
1861 #[doc(hidden)]
1862 pub struct IGeocoordinateWithPositionData_abi(
1863     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1864     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1865     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1866     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1867     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1868     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1869     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut PositionSource) -> ::windows::runtime::HRESULT,
1870     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1871 );
1872 #[repr(transparent)]
1873 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1874 #[doc(hidden)]
1875 pub struct IGeocoordinateWithPositionSourceTimestamp(::windows::runtime::IInspectable);
1876 unsafe impl ::windows::runtime::Interface for IGeocoordinateWithPositionSourceTimestamp {
1877     type Vtable = IGeocoordinateWithPositionSourceTimestamp_abi;
1878     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2235825154, 51697, 17936, [175, 224, 139, 195, 166, 168, 112, 54]);
1879 }
1880 #[repr(C)]
1881 #[doc(hidden)]
1882 pub struct IGeocoordinateWithPositionSourceTimestamp_abi(
1883     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1884     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1885     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1886     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1887     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1889     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1890     #[cfg(not(feature = "Foundation"))] usize,
1891 );
1892 #[repr(transparent)]
1893 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1894 #[doc(hidden)]
1895 pub struct IGeocoordinateWithRemoteSource(::windows::runtime::IInspectable);
1896 unsafe impl ::windows::runtime::Interface for IGeocoordinateWithRemoteSource {
1897     type Vtable = IGeocoordinateWithRemoteSource_abi;
1898     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(964488151, 60984, 24379, [137, 0, 196, 167, 188, 156, 249, 83]);
1899 }
1900 #[repr(C)]
1901 #[doc(hidden)]
1902 pub struct IGeocoordinateWithRemoteSource_abi(
1903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1905     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1906     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1907     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1908     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1910 );
1911 #[repr(transparent)]
1912 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1913 #[doc(hidden)]
1914 pub struct IGeolocator(::windows::runtime::IInspectable);
1915 unsafe impl ::windows::runtime::Interface for IGeolocator {
1916     type Vtable = IGeolocator_abi;
1917     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2848178018, 17700, 18825, [138, 169, 222, 1, 157, 46, 85, 31]);
1918 }
1919 #[repr(C)]
1920 #[doc(hidden)]
1921 pub struct IGeolocator_abi(
1922     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1923     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1924     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1925     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1926     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1927     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut PositionAccuracy) -> ::windows::runtime::HRESULT,
1929     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: PositionAccuracy) -> ::windows::runtime::HRESULT,
1930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut f64) -> ::windows::runtime::HRESULT,
1931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: f64) -> ::windows::runtime::HRESULT,
1932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
1933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
1934     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut PositionStatus) -> ::windows::runtime::HRESULT,
1935     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1936     #[cfg(not(feature = "Foundation"))] usize,
1937     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, maximumage: super::super::Foundation::TimeSpan, timeout: super::super::Foundation::TimeSpan, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1938     #[cfg(not(feature = "Foundation"))] usize,
1939     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
1940     #[cfg(not(feature = "Foundation"))] usize,
1941     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
1942     #[cfg(not(feature = "Foundation"))] usize,
1943     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
1944     #[cfg(not(feature = "Foundation"))] usize,
1945     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
1946     #[cfg(not(feature = "Foundation"))] usize,
1947 );
1948 #[repr(transparent)]
1949 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1950 #[doc(hidden)]
1951 pub struct IGeolocator2(::windows::runtime::IInspectable);
1952 unsafe impl ::windows::runtime::Interface for IGeolocator2 {
1953     type Vtable = IGeolocator2_abi;
1954     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3518246509, 34961, 17332, [173, 54, 39, 198, 254, 154, 151, 177]);
1955 }
1956 #[repr(C)]
1957 #[doc(hidden)]
1958 pub struct IGeolocator2_abi(
1959     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1960     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1961     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1962     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1963     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1964     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1965     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1966 );
1967 #[repr(transparent)]
1968 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1969 #[doc(hidden)]
1970 pub struct IGeolocatorStatics(::windows::runtime::IInspectable);
1971 unsafe impl ::windows::runtime::Interface for IGeolocatorStatics {
1972     type Vtable = IGeolocatorStatics_abi;
1973     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2593027441, 11765, 17809, [159, 135, 235, 95, 216, 148, 233, 183]);
1974 }
1975 #[repr(C)]
1976 #[doc(hidden)]
1977 pub struct IGeolocatorStatics_abi(
1978     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1979     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1980     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1981     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1982     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1983     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1984     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1985     #[cfg(not(feature = "Foundation"))] usize,
1986     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, starttime: super::super::Foundation::DateTime, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1987     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1988     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, starttime: super::super::Foundation::DateTime, duration: super::super::Foundation::TimeSpan, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1989     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1990 );
1991 #[repr(transparent)]
1992 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1993 #[doc(hidden)]
1994 pub struct IGeolocatorStatics2(::windows::runtime::IInspectable);
1995 unsafe impl ::windows::runtime::Interface for IGeolocatorStatics2 {
1996     type Vtable = IGeolocatorStatics2_abi;
1997     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2570064290, 64028, 17969, [167, 29, 13, 190, 177, 37, 13, 156]);
1998 }
1999 #[repr(C)]
2000 #[doc(hidden)]
2001 pub struct IGeolocatorStatics2_abi(
2002     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2003     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2004     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2005     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2006     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2007     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2008     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
2009     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2010     #[cfg(not(feature = "Foundation"))] usize,
2011     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2012     #[cfg(not(feature = "Foundation"))] usize,
2013 );
2014 #[repr(transparent)]
2015 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2016 #[doc(hidden)]
2017 pub struct IGeolocatorWithScalarAccuracy(::windows::runtime::IInspectable);
2018 unsafe impl ::windows::runtime::Interface for IGeolocatorWithScalarAccuracy {
2019     type Vtable = IGeolocatorWithScalarAccuracy_abi;
2020     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2532692929, 47119, 17930, [153, 77, 169, 108, 71, 165, 26, 164]);
2021 }
2022 #[repr(C)]
2023 #[doc(hidden)]
2024 pub struct IGeolocatorWithScalarAccuracy_abi(
2025     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2026     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2027     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2028     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2029     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2030     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2031     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2032     #[cfg(not(feature = "Foundation"))] usize,
2033     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2034     #[cfg(not(feature = "Foundation"))] usize,
2035 );
2036 #[repr(transparent)]
2037 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2038 #[doc(hidden)]
2039 pub struct IGeopath(::windows::runtime::IInspectable);
2040 unsafe impl ::windows::runtime::Interface for IGeopath {
2041     type Vtable = IGeopath_abi;
2042     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3846166457, 11684, 18196, [166, 82, 222, 133, 147, 40, 152, 152]);
2043 }
2044 #[repr(C)]
2045 #[doc(hidden)]
2046 pub struct IGeopath_abi(
2047     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2048     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2049     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2050     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2051     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2052     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2053     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2054     #[cfg(not(feature = "Foundation_Collections"))] usize,
2055 );
2056 #[repr(transparent)]
2057 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2058 #[doc(hidden)]
2059 pub struct IGeopathFactory(::windows::runtime::IInspectable);
2060 unsafe impl ::windows::runtime::Interface for IGeopathFactory {
2061     type Vtable = IGeopathFactory_abi;
2062     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(666806728, 51175, 17241, [155, 155, 252, 163, 224, 94, 245, 147]);
2063 }
2064 #[repr(C)]
2065 #[doc(hidden)]
2066 pub struct IGeopathFactory_abi(
2067     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2068     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2069     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2070     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2071     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2072     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2073     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, positions: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2074     #[cfg(not(feature = "Foundation_Collections"))] usize,
2075     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, positions: ::windows::runtime::RawPtr, altitudereferencesystem: AltitudeReferenceSystem, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2076     #[cfg(not(feature = "Foundation_Collections"))] usize,
2077     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, positions: ::windows::runtime::RawPtr, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2078     #[cfg(not(feature = "Foundation_Collections"))] usize,
2079 );
2080 #[repr(transparent)]
2081 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2082 #[doc(hidden)]
2083 pub struct IGeopoint(::windows::runtime::IInspectable);
2084 unsafe impl ::windows::runtime::Interface for IGeopoint {
2085     type Vtable = IGeopoint_abi;
2086     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1811546347, 58734, 18875, [156, 175, 203, 170, 120, 168, 188, 239]);
2087 }
2088 #[repr(C)]
2089 #[doc(hidden)]
2090 pub struct IGeopoint_abi(
2091     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2092     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2093     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2094     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2095     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2096     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2097     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BasicGeoposition) -> ::windows::runtime::HRESULT,
2098 );
2099 #[repr(transparent)]
2100 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2101 #[doc(hidden)]
2102 pub struct IGeopointFactory(::windows::runtime::IInspectable);
2103 unsafe impl ::windows::runtime::Interface for IGeopointFactory {
2104     type Vtable = IGeopointFactory_abi;
2105     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3681258803, 30397, 20016, [138, 247, 168, 68, 220, 55, 183, 160]);
2106 }
2107 #[repr(C)]
2108 #[doc(hidden)]
2109 pub struct IGeopointFactory_abi(
2110     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2111     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2112     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2113     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2114     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2115     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2116     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: BasicGeoposition, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2117     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: BasicGeoposition, altitudereferencesystem: AltitudeReferenceSystem, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2118     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: BasicGeoposition, altitudereferencesystem: AltitudeReferenceSystem, spatialreferenceid: u32, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2119 );
2120 #[repr(transparent)]
2121 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2122 #[doc(hidden)]
2123 pub struct IGeoposition(::windows::runtime::IInspectable);
2124 unsafe impl ::windows::runtime::Interface for IGeoposition {
2125     type Vtable = IGeoposition_abi;
2126     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3247244372, 32065, 20471, [169, 87, 157, 255, 180, 239, 127, 91]);
2127 }
2128 #[repr(C)]
2129 #[doc(hidden)]
2130 pub struct IGeoposition_abi(
2131     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2132     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2133     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2134     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2135     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2136     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2137     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2138     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2139 );
2140 #[repr(transparent)]
2141 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2142 #[doc(hidden)]
2143 pub struct IGeoposition2(::windows::runtime::IInspectable);
2144 unsafe impl ::windows::runtime::Interface for IGeoposition2 {
2145     type Vtable = IGeoposition2_abi;
2146     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2137192087, 34417, 19213, [134, 248, 71, 74, 132, 150, 24, 124]);
2147 }
2148 #[repr(C)]
2149 #[doc(hidden)]
2150 pub struct IGeoposition2_abi(
2151     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2152     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2153     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2154     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2155     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2156     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2157     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2158 );
2159 #[repr(transparent)]
2160 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2161 pub struct IGeoshape(::windows::runtime::IInspectable);
2162 unsafe impl ::windows::runtime::Interface for IGeoshape {
2163     type Vtable = IGeoshape_abi;
2164     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3382485679, 50985, 17345, [143, 171, 214, 222, 201, 20, 223, 126]);
2165 }
2166 impl IGeoshape {
GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType>2167     pub fn GeoshapeType(&self) -> ::windows::runtime::Result<GeoshapeType> {
2168         let this = self;
2169         unsafe {
2170             let mut result__: GeoshapeType = ::std::mem::zeroed();
2171             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<GeoshapeType>(result__)
2172         }
2173     }
SpatialReferenceId(&self) -> ::windows::runtime::Result<u32>2174     pub fn SpatialReferenceId(&self) -> ::windows::runtime::Result<u32> {
2175         let this = self;
2176         unsafe {
2177             let mut result__: u32 = ::std::mem::zeroed();
2178             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2179         }
2180     }
AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem>2181     pub fn AltitudeReferenceSystem(&self) -> ::windows::runtime::Result<AltitudeReferenceSystem> {
2182         let this = self;
2183         unsafe {
2184             let mut result__: AltitudeReferenceSystem = ::std::mem::zeroed();
2185             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<AltitudeReferenceSystem>(result__)
2186         }
2187     }
2188 }
2189 unsafe impl ::windows::runtime::RuntimeType for IGeoshape {
2190     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{c99ca2af-c729-43c1-8fab-d6dec914df7e}");
2191 }
2192 impl ::std::convert::From<IGeoshape> for ::windows::runtime::IUnknown {
from(value: IGeoshape) -> Self2193     fn from(value: IGeoshape) -> Self {
2194         unsafe { ::std::mem::transmute(value) }
2195     }
2196 }
2197 impl ::std::convert::From<&IGeoshape> for ::windows::runtime::IUnknown {
from(value: &IGeoshape) -> Self2198     fn from(value: &IGeoshape) -> Self {
2199         ::std::convert::From::from(::std::clone::Clone::clone(value))
2200     }
2201 }
2202 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IGeoshape {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2203     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2204         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2205     }
2206 }
2207 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IGeoshape {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2208     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2209         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2210     }
2211 }
2212 impl ::std::convert::From<IGeoshape> for ::windows::runtime::IInspectable {
from(value: IGeoshape) -> Self2213     fn from(value: IGeoshape) -> Self {
2214         value.0
2215     }
2216 }
2217 impl ::std::convert::From<&IGeoshape> for ::windows::runtime::IInspectable {
from(value: &IGeoshape) -> Self2218     fn from(value: &IGeoshape) -> Self {
2219         value.0.clone()
2220     }
2221 }
2222 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IGeoshape {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2223     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2224         ::windows::runtime::Param::Owned(self.0)
2225     }
2226 }
2227 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IGeoshape {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2228     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2229         ::windows::runtime::Param::Borrowed(&self.0)
2230     }
2231 }
2232 #[repr(C)]
2233 #[doc(hidden)]
2234 pub struct IGeoshape_abi(
2235     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2236     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2237     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2238     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2239     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2240     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2241     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut GeoshapeType) -> ::windows::runtime::HRESULT,
2242     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
2243     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut AltitudeReferenceSystem) -> ::windows::runtime::HRESULT,
2244 );
2245 #[repr(transparent)]
2246 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2247 #[doc(hidden)]
2248 pub struct IGeovisit(::windows::runtime::IInspectable);
2249 unsafe impl ::windows::runtime::Interface for IGeovisit {
2250     type Vtable = IGeovisit_abi;
2251     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2978445942, 40694, 16811, [160, 221, 121, 62, 206, 118, 226, 222]);
2252 }
2253 #[repr(C)]
2254 #[doc(hidden)]
2255 pub struct IGeovisit_abi(
2256     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2257     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2258     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2259     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2260     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2261     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2262     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2263     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut VisitStateChange) -> ::windows::runtime::HRESULT,
2264     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT,
2265     #[cfg(not(feature = "Foundation"))] usize,
2266 );
2267 #[repr(transparent)]
2268 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2269 #[doc(hidden)]
2270 pub struct IGeovisitMonitor(::windows::runtime::IInspectable);
2271 unsafe impl ::windows::runtime::Interface for IGeovisitMonitor {
2272     type Vtable = IGeovisitMonitor_abi;
2273     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2148633263, 22852, 17809, [131, 193, 57, 102, 71, 245, 79, 44]);
2274 }
2275 #[repr(C)]
2276 #[doc(hidden)]
2277 pub struct IGeovisitMonitor_abi(
2278     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2279     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2280     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2281     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2282     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2283     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2284     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut VisitMonitoringScope) -> ::windows::runtime::HRESULT,
2285     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: VisitMonitoringScope) -> ::windows::runtime::HRESULT,
2286     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2287     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, handler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
2288     #[cfg(not(feature = "Foundation"))] usize,
2289     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, token: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
2290     #[cfg(not(feature = "Foundation"))] usize,
2291 );
2292 #[repr(transparent)]
2293 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2294 #[doc(hidden)]
2295 pub struct IGeovisitMonitorStatics(::windows::runtime::IInspectable);
2296 unsafe impl ::windows::runtime::Interface for IGeovisitMonitorStatics {
2297     type Vtable = IGeovisitMonitorStatics_abi;
2298     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3170465447, 48114, 19677, [149, 207, 85, 76, 130, 237, 251, 135]);
2299 }
2300 #[repr(C)]
2301 #[doc(hidden)]
2302 pub struct IGeovisitMonitorStatics_abi(
2303     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2304     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2305     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2306     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2307     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2308     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2309     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2310     #[cfg(not(feature = "Foundation"))] usize,
2311 );
2312 #[repr(transparent)]
2313 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2314 #[doc(hidden)]
2315 pub struct IGeovisitStateChangedEventArgs(::windows::runtime::IInspectable);
2316 unsafe impl ::windows::runtime::Interface for IGeovisitStateChangedEventArgs {
2317     type Vtable = IGeovisitStateChangedEventArgs_abi;
2318     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3467956735, 35667, 18792, [190, 237, 76, 236, 208, 41, 206, 21]);
2319 }
2320 #[repr(C)]
2321 #[doc(hidden)]
2322 pub struct IGeovisitStateChangedEventArgs_abi(
2323     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2324     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2325     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2326     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2327     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2328     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2329     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2330 );
2331 #[repr(transparent)]
2332 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2333 #[doc(hidden)]
2334 pub struct IGeovisitTriggerDetails(::windows::runtime::IInspectable);
2335 unsafe impl ::windows::runtime::Interface for IGeovisitTriggerDetails {
2336     type Vtable = IGeovisitTriggerDetails_abi;
2337     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3933670814, 53705, 17739, [153, 183, 178, 248, 205, 210, 72, 47]);
2338 }
2339 #[repr(C)]
2340 #[doc(hidden)]
2341 pub struct IGeovisitTriggerDetails_abi(
2342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2344     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2345     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2346     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2347     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2348     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2349     #[cfg(not(feature = "Foundation_Collections"))] usize,
2350 );
2351 #[repr(transparent)]
2352 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2353 #[doc(hidden)]
2354 pub struct IPositionChangedEventArgs(::windows::runtime::IInspectable);
2355 unsafe impl ::windows::runtime::Interface for IPositionChangedEventArgs {
2356     type Vtable = IPositionChangedEventArgs_abi;
2357     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(931503333, 40222, 18117, [191, 59, 106, 216, 202, 193, 160, 147]);
2358 }
2359 #[repr(C)]
2360 #[doc(hidden)]
2361 pub struct IPositionChangedEventArgs_abi(
2362     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2363     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2364     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2365     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2366     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2369 );
2370 #[repr(transparent)]
2371 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2372 #[doc(hidden)]
2373 pub struct IStatusChangedEventArgs(::windows::runtime::IInspectable);
2374 unsafe impl ::windows::runtime::Interface for IStatusChangedEventArgs {
2375     type Vtable = IStatusChangedEventArgs_abi;
2376     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(877908698, 35987, 16657, [162, 5, 154, 236, 252, 155, 229, 192]);
2377 }
2378 #[repr(C)]
2379 #[doc(hidden)]
2380 pub struct IStatusChangedEventArgs_abi(
2381     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2384     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2385     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2386     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2387     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut PositionStatus) -> ::windows::runtime::HRESULT,
2388 );
2389 #[repr(transparent)]
2390 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2391 #[doc(hidden)]
2392 pub struct IVenueData(::windows::runtime::IInspectable);
2393 unsafe impl ::windows::runtime::Interface for IVenueData {
2394     type Vtable = IVenueData_abi;
2395     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1727238535, 24803, 19247, [181, 39, 79, 83, 241, 195, 198, 119]);
2396 }
2397 #[repr(C)]
2398 #[doc(hidden)]
2399 pub struct IVenueData_abi(
2400     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2404     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2405     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2407     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2408 );
2409 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2410 #[repr(transparent)]
2411 pub struct PositionAccuracy(pub i32);
2412 impl PositionAccuracy {
2413     pub const Default: PositionAccuracy = PositionAccuracy(0i32);
2414     pub const High: PositionAccuracy = PositionAccuracy(1i32);
2415 }
2416 impl ::std::convert::From<i32> for PositionAccuracy {
from(value: i32) -> Self2417     fn from(value: i32) -> Self {
2418         Self(value)
2419     }
2420 }
2421 unsafe impl ::windows::runtime::Abi for PositionAccuracy {
2422     type Abi = Self;
2423     type DefaultType = Self;
2424 }
2425 unsafe impl ::windows::runtime::RuntimeType for PositionAccuracy {
2426     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Geolocation.PositionAccuracy;i4)");
2427 }
2428 #[repr(transparent)]
2429 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2430 pub struct PositionChangedEventArgs(::windows::runtime::IInspectable);
2431 impl PositionChangedEventArgs {
Position(&self) -> ::windows::runtime::Result<Geoposition>2432     pub fn Position(&self) -> ::windows::runtime::Result<Geoposition> {
2433         let this = self;
2434         unsafe {
2435             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2436             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<Geoposition>(result__)
2437         }
2438     }
2439 }
2440 unsafe impl ::windows::runtime::RuntimeType for PositionChangedEventArgs {
2441     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.PositionChangedEventArgs;{37859ce5-9d1e-46c5-bf3b-6ad8cac1a093})");
2442 }
2443 unsafe impl ::windows::runtime::Interface for PositionChangedEventArgs {
2444     type Vtable = IPositionChangedEventArgs_abi;
2445     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(931503333, 40222, 18117, [191, 59, 106, 216, 202, 193, 160, 147]);
2446 }
2447 impl ::windows::runtime::RuntimeName for PositionChangedEventArgs {
2448     const NAME: &'static str = "Windows.Devices.Geolocation.PositionChangedEventArgs";
2449 }
2450 impl ::std::convert::From<PositionChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: PositionChangedEventArgs) -> Self2451     fn from(value: PositionChangedEventArgs) -> Self {
2452         unsafe { ::std::mem::transmute(value) }
2453     }
2454 }
2455 impl ::std::convert::From<&PositionChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: &PositionChangedEventArgs) -> Self2456     fn from(value: &PositionChangedEventArgs) -> Self {
2457         ::std::convert::From::from(::std::clone::Clone::clone(value))
2458     }
2459 }
2460 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for PositionChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2461     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2462         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2463     }
2464 }
2465 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &PositionChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2466     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2467         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2468     }
2469 }
2470 impl ::std::convert::From<PositionChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: PositionChangedEventArgs) -> Self2471     fn from(value: PositionChangedEventArgs) -> Self {
2472         value.0
2473     }
2474 }
2475 impl ::std::convert::From<&PositionChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: &PositionChangedEventArgs) -> Self2476     fn from(value: &PositionChangedEventArgs) -> Self {
2477         value.0.clone()
2478     }
2479 }
2480 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for PositionChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2481     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2482         ::windows::runtime::Param::Owned(self.0)
2483     }
2484 }
2485 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a PositionChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2486     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2487         ::windows::runtime::Param::Borrowed(&self.0)
2488     }
2489 }
2490 unsafe impl ::std::marker::Send for PositionChangedEventArgs {}
2491 unsafe impl ::std::marker::Sync for PositionChangedEventArgs {}
2492 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2493 #[repr(transparent)]
2494 pub struct PositionSource(pub i32);
2495 impl PositionSource {
2496     pub const Cellular: PositionSource = PositionSource(0i32);
2497     pub const Satellite: PositionSource = PositionSource(1i32);
2498     pub const WiFi: PositionSource = PositionSource(2i32);
2499     pub const IPAddress: PositionSource = PositionSource(3i32);
2500     pub const Unknown: PositionSource = PositionSource(4i32);
2501     pub const Default: PositionSource = PositionSource(5i32);
2502     pub const Obfuscated: PositionSource = PositionSource(6i32);
2503 }
2504 impl ::std::convert::From<i32> for PositionSource {
from(value: i32) -> Self2505     fn from(value: i32) -> Self {
2506         Self(value)
2507     }
2508 }
2509 unsafe impl ::windows::runtime::Abi for PositionSource {
2510     type Abi = Self;
2511     type DefaultType = Self;
2512 }
2513 unsafe impl ::windows::runtime::RuntimeType for PositionSource {
2514     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Geolocation.PositionSource;i4)");
2515 }
2516 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2517 #[repr(transparent)]
2518 pub struct PositionStatus(pub i32);
2519 impl PositionStatus {
2520     pub const Ready: PositionStatus = PositionStatus(0i32);
2521     pub const Initializing: PositionStatus = PositionStatus(1i32);
2522     pub const NoData: PositionStatus = PositionStatus(2i32);
2523     pub const Disabled: PositionStatus = PositionStatus(3i32);
2524     pub const NotInitialized: PositionStatus = PositionStatus(4i32);
2525     pub const NotAvailable: PositionStatus = PositionStatus(5i32);
2526 }
2527 impl ::std::convert::From<i32> for PositionStatus {
from(value: i32) -> Self2528     fn from(value: i32) -> Self {
2529         Self(value)
2530     }
2531 }
2532 unsafe impl ::windows::runtime::Abi for PositionStatus {
2533     type Abi = Self;
2534     type DefaultType = Self;
2535 }
2536 unsafe impl ::windows::runtime::RuntimeType for PositionStatus {
2537     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Geolocation.PositionStatus;i4)");
2538 }
2539 #[repr(transparent)]
2540 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2541 pub struct StatusChangedEventArgs(::windows::runtime::IInspectable);
2542 impl StatusChangedEventArgs {
Status(&self) -> ::windows::runtime::Result<PositionStatus>2543     pub fn Status(&self) -> ::windows::runtime::Result<PositionStatus> {
2544         let this = self;
2545         unsafe {
2546             let mut result__: PositionStatus = ::std::mem::zeroed();
2547             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<PositionStatus>(result__)
2548         }
2549     }
2550 }
2551 unsafe impl ::windows::runtime::RuntimeType for StatusChangedEventArgs {
2552     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.StatusChangedEventArgs;{3453d2da-8c93-4111-a205-9aecfc9be5c0})");
2553 }
2554 unsafe impl ::windows::runtime::Interface for StatusChangedEventArgs {
2555     type Vtable = IStatusChangedEventArgs_abi;
2556     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(877908698, 35987, 16657, [162, 5, 154, 236, 252, 155, 229, 192]);
2557 }
2558 impl ::windows::runtime::RuntimeName for StatusChangedEventArgs {
2559     const NAME: &'static str = "Windows.Devices.Geolocation.StatusChangedEventArgs";
2560 }
2561 impl ::std::convert::From<StatusChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: StatusChangedEventArgs) -> Self2562     fn from(value: StatusChangedEventArgs) -> Self {
2563         unsafe { ::std::mem::transmute(value) }
2564     }
2565 }
2566 impl ::std::convert::From<&StatusChangedEventArgs> for ::windows::runtime::IUnknown {
from(value: &StatusChangedEventArgs) -> Self2567     fn from(value: &StatusChangedEventArgs) -> Self {
2568         ::std::convert::From::from(::std::clone::Clone::clone(value))
2569     }
2570 }
2571 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for StatusChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2572     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2573         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2574     }
2575 }
2576 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &StatusChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2577     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2578         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2579     }
2580 }
2581 impl ::std::convert::From<StatusChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: StatusChangedEventArgs) -> Self2582     fn from(value: StatusChangedEventArgs) -> Self {
2583         value.0
2584     }
2585 }
2586 impl ::std::convert::From<&StatusChangedEventArgs> for ::windows::runtime::IInspectable {
from(value: &StatusChangedEventArgs) -> Self2587     fn from(value: &StatusChangedEventArgs) -> Self {
2588         value.0.clone()
2589     }
2590 }
2591 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for StatusChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2592     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2593         ::windows::runtime::Param::Owned(self.0)
2594     }
2595 }
2596 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a StatusChangedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2597     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2598         ::windows::runtime::Param::Borrowed(&self.0)
2599     }
2600 }
2601 unsafe impl ::std::marker::Send for StatusChangedEventArgs {}
2602 unsafe impl ::std::marker::Sync for StatusChangedEventArgs {}
2603 #[repr(transparent)]
2604 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2605 pub struct VenueData(::windows::runtime::IInspectable);
2606 impl VenueData {
Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>2607     pub fn Id(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
2608         let this = self;
2609         unsafe {
2610             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
2611             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
2612         }
2613     }
Level(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>2614     pub fn Level(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
2615         let this = self;
2616         unsafe {
2617             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
2618             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
2619         }
2620     }
2621 }
2622 unsafe impl ::windows::runtime::RuntimeType for VenueData {
2623     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Devices.Geolocation.VenueData;{66f39187-60e3-4b2f-b527-4f53f1c3c677})");
2624 }
2625 unsafe impl ::windows::runtime::Interface for VenueData {
2626     type Vtable = IVenueData_abi;
2627     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1727238535, 24803, 19247, [181, 39, 79, 83, 241, 195, 198, 119]);
2628 }
2629 impl ::windows::runtime::RuntimeName for VenueData {
2630     const NAME: &'static str = "Windows.Devices.Geolocation.VenueData";
2631 }
2632 impl ::std::convert::From<VenueData> for ::windows::runtime::IUnknown {
from(value: VenueData) -> Self2633     fn from(value: VenueData) -> Self {
2634         unsafe { ::std::mem::transmute(value) }
2635     }
2636 }
2637 impl ::std::convert::From<&VenueData> for ::windows::runtime::IUnknown {
from(value: &VenueData) -> Self2638     fn from(value: &VenueData) -> Self {
2639         ::std::convert::From::from(::std::clone::Clone::clone(value))
2640     }
2641 }
2642 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for VenueData {
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(self))
2645     }
2646 }
2647 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &VenueData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2648     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2649         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2650     }
2651 }
2652 impl ::std::convert::From<VenueData> for ::windows::runtime::IInspectable {
from(value: VenueData) -> Self2653     fn from(value: VenueData) -> Self {
2654         value.0
2655     }
2656 }
2657 impl ::std::convert::From<&VenueData> for ::windows::runtime::IInspectable {
from(value: &VenueData) -> Self2658     fn from(value: &VenueData) -> Self {
2659         value.0.clone()
2660     }
2661 }
2662 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for VenueData {
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::Owned(self.0)
2665     }
2666 }
2667 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a VenueData {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2668     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2669         ::windows::runtime::Param::Borrowed(&self.0)
2670     }
2671 }
2672 unsafe impl ::std::marker::Send for VenueData {}
2673 unsafe impl ::std::marker::Sync for VenueData {}
2674 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2675 #[repr(transparent)]
2676 pub struct VisitMonitoringScope(pub i32);
2677 impl VisitMonitoringScope {
2678     pub const Venue: VisitMonitoringScope = VisitMonitoringScope(0i32);
2679     pub const City: VisitMonitoringScope = VisitMonitoringScope(1i32);
2680 }
2681 impl ::std::convert::From<i32> for VisitMonitoringScope {
from(value: i32) -> Self2682     fn from(value: i32) -> Self {
2683         Self(value)
2684     }
2685 }
2686 unsafe impl ::windows::runtime::Abi for VisitMonitoringScope {
2687     type Abi = Self;
2688     type DefaultType = Self;
2689 }
2690 unsafe impl ::windows::runtime::RuntimeType for VisitMonitoringScope {
2691     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Geolocation.VisitMonitoringScope;i4)");
2692 }
2693 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2694 #[repr(transparent)]
2695 pub struct VisitStateChange(pub i32);
2696 impl VisitStateChange {
2697     pub const TrackingLost: VisitStateChange = VisitStateChange(0i32);
2698     pub const Arrived: VisitStateChange = VisitStateChange(1i32);
2699     pub const Departed: VisitStateChange = VisitStateChange(2i32);
2700     pub const OtherMovement: VisitStateChange = VisitStateChange(3i32);
2701 }
2702 impl ::std::convert::From<i32> for VisitStateChange {
from(value: i32) -> Self2703     fn from(value: i32) -> Self {
2704         Self(value)
2705     }
2706 }
2707 unsafe impl ::windows::runtime::Abi for VisitStateChange {
2708     type Abi = Self;
2709     type DefaultType = Self;
2710 }
2711 unsafe impl ::windows::runtime::RuntimeType for VisitStateChange {
2712     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Devices.Geolocation.VisitStateChange;i4)");
2713 }
2714