1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[repr(transparent)]
3 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
4 pub struct BasicProperties(::windows::runtime::IInspectable);
5 impl BasicProperties {
Size(&self) -> ::windows::runtime::Result<u64>6     pub fn Size(&self) -> ::windows::runtime::Result<u64> {
7         let this = self;
8         unsafe {
9             let mut result__: u64 = ::std::mem::zeroed();
10             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
11         }
12     }
13     #[cfg(feature = "Foundation")]
DateModified(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime>14     pub fn DateModified(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> {
15         let this = self;
16         unsafe {
17             let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed();
18             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__)
19         }
20     }
21     #[cfg(feature = "Foundation")]
ItemDate(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime>22     pub fn ItemDate(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> {
23         let this = self;
24         unsafe {
25             let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed();
26             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__)
27         }
28     }
29     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>30     pub fn RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>> {
31         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
32         unsafe {
33             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
34             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), propertiestoretrieve.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>(result__)
35         }
36     }
37     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>38     pub fn SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
39         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
40         unsafe {
41             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
42             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertiestosave.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
43         }
44     }
45     #[cfg(feature = "Foundation")]
SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>46     pub fn SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
47         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
48         unsafe {
49             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
50             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
51         }
52     }
53 }
54 unsafe impl ::windows::runtime::RuntimeType for BasicProperties {
55     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.FileProperties.BasicProperties;{d05d55db-785e-4a66-be02-9beec58aea81})");
56 }
57 unsafe impl ::windows::runtime::Interface for BasicProperties {
58     type Vtable = IBasicProperties_abi;
59     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3495777755, 30814, 19046, [190, 2, 155, 238, 197, 138, 234, 129]);
60 }
61 impl ::windows::runtime::RuntimeName for BasicProperties {
62     const NAME: &'static str = "Windows.Storage.FileProperties.BasicProperties";
63 }
64 impl ::std::convert::From<BasicProperties> for ::windows::runtime::IUnknown {
from(value: BasicProperties) -> Self65     fn from(value: BasicProperties) -> Self {
66         unsafe { ::std::mem::transmute(value) }
67     }
68 }
69 impl ::std::convert::From<&BasicProperties> for ::windows::runtime::IUnknown {
from(value: &BasicProperties) -> Self70     fn from(value: &BasicProperties) -> Self {
71         ::std::convert::From::from(::std::clone::Clone::clone(value))
72     }
73 }
74 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for BasicProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>75     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
76         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
77     }
78 }
79 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &BasicProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>80     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
81         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
82     }
83 }
84 impl ::std::convert::From<BasicProperties> for ::windows::runtime::IInspectable {
from(value: BasicProperties) -> Self85     fn from(value: BasicProperties) -> Self {
86         value.0
87     }
88 }
89 impl ::std::convert::From<&BasicProperties> for ::windows::runtime::IInspectable {
from(value: &BasicProperties) -> Self90     fn from(value: &BasicProperties) -> Self {
91         value.0.clone()
92     }
93 }
94 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for BasicProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>95     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
96         ::windows::runtime::Param::Owned(self.0)
97     }
98 }
99 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a BasicProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>100     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
101         ::windows::runtime::Param::Borrowed(&self.0)
102     }
103 }
104 impl ::std::convert::TryFrom<BasicProperties> for IStorageItemExtraProperties {
105     type Error = ::windows::runtime::Error;
try_from(value: BasicProperties) -> ::windows::runtime::Result<Self>106     fn try_from(value: BasicProperties) -> ::windows::runtime::Result<Self> {
107         ::std::convert::TryFrom::try_from(&value)
108     }
109 }
110 impl ::std::convert::TryFrom<&BasicProperties> for IStorageItemExtraProperties {
111     type Error = ::windows::runtime::Error;
try_from(value: &BasicProperties) -> ::windows::runtime::Result<Self>112     fn try_from(value: &BasicProperties) -> ::windows::runtime::Result<Self> {
113         ::windows::runtime::Interface::cast(value)
114     }
115 }
116 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for BasicProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>117     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
118         ::windows::runtime::IntoParam::into_param(&self)
119     }
120 }
121 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for &BasicProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>122     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
123         ::std::convert::TryInto::<IStorageItemExtraProperties>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
124     }
125 }
126 #[repr(transparent)]
127 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
128 pub struct DocumentProperties(::windows::runtime::IInspectable);
129 impl DocumentProperties {
130     #[cfg(feature = "Foundation_Collections")]
Author(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>131     pub fn Author(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
132         let this = self;
133         unsafe {
134             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
135             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
136         }
137     }
Title(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>138     pub fn Title(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
139         let this = self;
140         unsafe {
141             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
142             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
143         }
144     }
SetTitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>145     pub fn SetTitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
146         let this = self;
147         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
148     }
149     #[cfg(feature = "Foundation_Collections")]
Keywords(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>150     pub fn Keywords(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
151         let this = self;
152         unsafe {
153             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
154             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
155         }
156     }
Comment(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>157     pub fn Comment(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
158         let this = self;
159         unsafe {
160             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
161             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
162         }
163     }
SetComment<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>164     pub fn SetComment<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
165         let this = self;
166         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
167     }
168     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>169     pub fn RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>> {
170         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
171         unsafe {
172             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
173             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), propertiestoretrieve.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>(result__)
174         }
175     }
176     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>177     pub fn SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
178         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
179         unsafe {
180             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
181             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertiestosave.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
182         }
183     }
184     #[cfg(feature = "Foundation")]
SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>185     pub fn SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
186         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
187         unsafe {
188             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
189             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
190         }
191     }
192 }
193 unsafe impl ::windows::runtime::RuntimeType for DocumentProperties {
194     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.FileProperties.DocumentProperties;{7eab19bc-1821-4923-b4a9-0aea404d0070})");
195 }
196 unsafe impl ::windows::runtime::Interface for DocumentProperties {
197     type Vtable = IDocumentProperties_abi;
198     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2125142460, 6177, 18723, [180, 169, 10, 234, 64, 77, 0, 112]);
199 }
200 impl ::windows::runtime::RuntimeName for DocumentProperties {
201     const NAME: &'static str = "Windows.Storage.FileProperties.DocumentProperties";
202 }
203 impl ::std::convert::From<DocumentProperties> for ::windows::runtime::IUnknown {
from(value: DocumentProperties) -> Self204     fn from(value: DocumentProperties) -> Self {
205         unsafe { ::std::mem::transmute(value) }
206     }
207 }
208 impl ::std::convert::From<&DocumentProperties> for ::windows::runtime::IUnknown {
from(value: &DocumentProperties) -> Self209     fn from(value: &DocumentProperties) -> Self {
210         ::std::convert::From::from(::std::clone::Clone::clone(value))
211     }
212 }
213 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DocumentProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>214     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
215         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
216     }
217 }
218 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DocumentProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>219     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
220         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
221     }
222 }
223 impl ::std::convert::From<DocumentProperties> for ::windows::runtime::IInspectable {
from(value: DocumentProperties) -> Self224     fn from(value: DocumentProperties) -> Self {
225         value.0
226     }
227 }
228 impl ::std::convert::From<&DocumentProperties> for ::windows::runtime::IInspectable {
from(value: &DocumentProperties) -> Self229     fn from(value: &DocumentProperties) -> Self {
230         value.0.clone()
231     }
232 }
233 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DocumentProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>234     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
235         ::windows::runtime::Param::Owned(self.0)
236     }
237 }
238 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DocumentProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>239     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
240         ::windows::runtime::Param::Borrowed(&self.0)
241     }
242 }
243 impl ::std::convert::TryFrom<DocumentProperties> for IStorageItemExtraProperties {
244     type Error = ::windows::runtime::Error;
try_from(value: DocumentProperties) -> ::windows::runtime::Result<Self>245     fn try_from(value: DocumentProperties) -> ::windows::runtime::Result<Self> {
246         ::std::convert::TryFrom::try_from(&value)
247     }
248 }
249 impl ::std::convert::TryFrom<&DocumentProperties> for IStorageItemExtraProperties {
250     type Error = ::windows::runtime::Error;
try_from(value: &DocumentProperties) -> ::windows::runtime::Result<Self>251     fn try_from(value: &DocumentProperties) -> ::windows::runtime::Result<Self> {
252         ::windows::runtime::Interface::cast(value)
253     }
254 }
255 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for DocumentProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>256     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
257         ::windows::runtime::IntoParam::into_param(&self)
258     }
259 }
260 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for &DocumentProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>261     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
262         ::std::convert::TryInto::<IStorageItemExtraProperties>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
263     }
264 }
265 pub struct GeotagHelper {}
266 impl GeotagHelper {
267     #[cfg(all(feature = "Devices_Geolocation", feature = "Foundation"))]
GetGeotagAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::IStorageFile>>(file: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Devices::Geolocation::Geopoint>>268     pub fn GetGeotagAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::IStorageFile>>(file: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Devices::Geolocation::Geopoint>> {
269         Self::IGeotagHelperStatics(|this| unsafe {
270             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
271             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), file.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Devices::Geolocation::Geopoint>>(result__)
272         })
273     }
274     #[cfg(all(feature = "Devices_Geolocation", feature = "Foundation"))]
SetGeotagFromGeolocatorAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::IStorageFile>, Param1: ::windows::runtime::IntoParam<'a, super::super::Devices::Geolocation::Geolocator>>(file: Param0, geolocator: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>275     pub fn SetGeotagFromGeolocatorAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::IStorageFile>, Param1: ::windows::runtime::IntoParam<'a, super::super::Devices::Geolocation::Geolocator>>(file: Param0, geolocator: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
276         Self::IGeotagHelperStatics(|this| unsafe {
277             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
278             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), file.into_param().abi(), geolocator.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
279         })
280     }
281     #[cfg(all(feature = "Devices_Geolocation", feature = "Foundation"))]
SetGeotagAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::IStorageFile>, Param1: ::windows::runtime::IntoParam<'a, super::super::Devices::Geolocation::Geopoint>>(file: Param0, geopoint: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>282     pub fn SetGeotagAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::IStorageFile>, Param1: ::windows::runtime::IntoParam<'a, super::super::Devices::Geolocation::Geopoint>>(file: Param0, geopoint: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
283         Self::IGeotagHelperStatics(|this| unsafe {
284             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
285             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), file.into_param().abi(), geopoint.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
286         })
287     }
IGeotagHelperStatics<R, F: FnOnce(&IGeotagHelperStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>288     pub fn IGeotagHelperStatics<R, F: FnOnce(&IGeotagHelperStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
289         static mut SHARED: ::windows::runtime::FactoryCache<GeotagHelper, IGeotagHelperStatics> = ::windows::runtime::FactoryCache::new();
290         unsafe { SHARED.call(callback) }
291     }
292 }
293 impl ::windows::runtime::RuntimeName for GeotagHelper {
294     const NAME: &'static str = "Windows.Storage.FileProperties.GeotagHelper";
295 }
296 #[repr(transparent)]
297 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
298 #[doc(hidden)]
299 pub struct IBasicProperties(::windows::runtime::IInspectable);
300 unsafe impl ::windows::runtime::Interface for IBasicProperties {
301     type Vtable = IBasicProperties_abi;
302     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3495777755, 30814, 19046, [190, 2, 155, 238, 197, 138, 234, 129]);
303 }
304 #[repr(C)]
305 #[doc(hidden)]
306 pub struct IBasicProperties_abi(
307     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
308     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
309     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
310     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
311     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
312     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
313     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u64) -> ::windows::runtime::HRESULT,
314     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT,
315     #[cfg(not(feature = "Foundation"))] usize,
316     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT,
317     #[cfg(not(feature = "Foundation"))] usize,
318 );
319 #[repr(transparent)]
320 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
321 #[doc(hidden)]
322 pub struct IDocumentProperties(::windows::runtime::IInspectable);
323 unsafe impl ::windows::runtime::Interface for IDocumentProperties {
324     type Vtable = IDocumentProperties_abi;
325     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2125142460, 6177, 18723, [180, 169, 10, 234, 64, 77, 0, 112]);
326 }
327 #[repr(C)]
328 #[doc(hidden)]
329 pub struct IDocumentProperties_abi(
330     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
331     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
332     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
333     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
334     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
335     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
336     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
337     #[cfg(not(feature = "Foundation_Collections"))] usize,
338     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
339     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
340     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
341     #[cfg(not(feature = "Foundation_Collections"))] usize,
342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
344 );
345 #[repr(transparent)]
346 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
347 #[doc(hidden)]
348 pub struct IGeotagHelperStatics(::windows::runtime::IInspectable);
349 unsafe impl ::windows::runtime::Interface for IGeotagHelperStatics {
350     type Vtable = IGeotagHelperStatics_abi;
351     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1095316036, 9508, 18005, [134, 166, 237, 22, 245, 252, 113, 107]);
352 }
353 #[repr(C)]
354 #[doc(hidden)]
355 pub struct IGeotagHelperStatics_abi(
356     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
357     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
358     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
359     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
360     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
361     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
362     #[cfg(all(feature = "Devices_Geolocation", feature = "Foundation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, file: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
363     #[cfg(not(all(feature = "Devices_Geolocation", feature = "Foundation")))] usize,
364     #[cfg(all(feature = "Devices_Geolocation", feature = "Foundation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, file: ::windows::runtime::RawPtr, geolocator: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
365     #[cfg(not(all(feature = "Devices_Geolocation", feature = "Foundation")))] usize,
366     #[cfg(all(feature = "Devices_Geolocation", feature = "Foundation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, file: ::windows::runtime::RawPtr, geopoint: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
367     #[cfg(not(all(feature = "Devices_Geolocation", feature = "Foundation")))] usize,
368 );
369 #[repr(transparent)]
370 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
371 #[doc(hidden)]
372 pub struct IImageProperties(::windows::runtime::IInspectable);
373 unsafe impl ::windows::runtime::Interface for IImageProperties {
374     type Vtable = IImageProperties_abi;
375     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1379701796, 64767, 17013, [175, 238, 236, 219, 154, 180, 121, 115]);
376 }
377 #[repr(C)]
378 #[doc(hidden)]
379 pub struct IImageProperties_abi(
380     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
381     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
384     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
385     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
386     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
387     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
388     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
389     #[cfg(not(feature = "Foundation_Collections"))] usize,
390     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT,
391     #[cfg(not(feature = "Foundation"))] usize,
392     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: super::super::Foundation::DateTime) -> ::windows::runtime::HRESULT,
393     #[cfg(not(feature = "Foundation"))] usize,
394     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
395     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
396     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
397     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
398     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
399     #[cfg(not(feature = "Foundation"))] usize,
400     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
401     #[cfg(not(feature = "Foundation"))] usize,
402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
404     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
405     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
406     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut PhotoOrientation) -> ::windows::runtime::HRESULT,
407     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
408     #[cfg(not(feature = "Foundation_Collections"))] usize,
409 );
410 #[repr(transparent)]
411 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
412 #[doc(hidden)]
413 pub struct IMusicProperties(::windows::runtime::IInspectable);
414 unsafe impl ::windows::runtime::Interface for IMusicProperties {
415     type Vtable = IMusicProperties_abi;
416     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3163204450, 26348, 16794, [188, 93, 202, 101, 164, 203, 70, 218]);
417 }
418 #[repr(C)]
419 #[doc(hidden)]
420 pub struct IMusicProperties_abi(
421     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
422     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
423     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
424     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
425     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
426     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
427     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
428     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
429     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
430     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
431     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
432     #[cfg(not(feature = "Foundation_Collections"))] usize,
433     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
437     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
438     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
439     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
440     #[cfg(not(feature = "Foundation"))] usize,
441     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
442     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
443     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
444     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
445     #[cfg(not(feature = "Foundation_Collections"))] usize,
446     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
447     #[cfg(not(feature = "Foundation_Collections"))] usize,
448     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
449     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
450     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
451     #[cfg(not(feature = "Foundation_Collections"))] usize,
452     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
453     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
454     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
455     #[cfg(not(feature = "Foundation_Collections"))] usize,
456     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
457     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
458 );
459 #[repr(transparent)]
460 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
461 #[doc(hidden)]
462 pub struct IStorageItemContentProperties(::windows::runtime::IInspectable);
463 unsafe impl ::windows::runtime::Interface for IStorageItemContentProperties {
464     type Vtable = IStorageItemContentProperties_abi;
465     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(86592429, 48184, 18623, [133, 215, 119, 14, 14, 42, 224, 186]);
466 }
467 #[repr(C)]
468 #[doc(hidden)]
469 pub struct IStorageItemContentProperties_abi(
470     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
471     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
472     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
473     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
474     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
475     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
476     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
477     #[cfg(not(feature = "Foundation"))] usize,
478     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
479     #[cfg(not(feature = "Foundation"))] usize,
480     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
481     #[cfg(not(feature = "Foundation"))] usize,
482     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
483     #[cfg(not(feature = "Foundation"))] usize,
484 );
485 #[repr(transparent)]
486 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
487 pub struct IStorageItemExtraProperties(::windows::runtime::IInspectable);
488 unsafe impl ::windows::runtime::Interface for IStorageItemExtraProperties {
489     type Vtable = IStorageItemExtraProperties_abi;
490     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3309527474, 21709, 17195, [189, 188, 75, 25, 196, 180, 112, 215]);
491 }
492 impl IStorageItemExtraProperties {
493     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>494     pub fn RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>> {
495         let this = self;
496         unsafe {
497             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
498             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), propertiestoretrieve.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>(result__)
499         }
500     }
501     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>502     pub fn SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
503         let this = self;
504         unsafe {
505             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
506             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertiestosave.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
507         }
508     }
509     #[cfg(feature = "Foundation")]
SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>510     pub fn SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
511         let this = self;
512         unsafe {
513             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
514             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
515         }
516     }
517 }
518 unsafe impl ::windows::runtime::RuntimeType for IStorageItemExtraProperties {
519     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{c54361b2-54cd-432b-bdbc-4b19c4b470d7}");
520 }
521 impl ::std::convert::From<IStorageItemExtraProperties> for ::windows::runtime::IUnknown {
from(value: IStorageItemExtraProperties) -> Self522     fn from(value: IStorageItemExtraProperties) -> Self {
523         unsafe { ::std::mem::transmute(value) }
524     }
525 }
526 impl ::std::convert::From<&IStorageItemExtraProperties> for ::windows::runtime::IUnknown {
from(value: &IStorageItemExtraProperties) -> Self527     fn from(value: &IStorageItemExtraProperties) -> Self {
528         ::std::convert::From::from(::std::clone::Clone::clone(value))
529     }
530 }
531 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IStorageItemExtraProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>532     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
533         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
534     }
535 }
536 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IStorageItemExtraProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>537     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
538         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
539     }
540 }
541 impl ::std::convert::From<IStorageItemExtraProperties> for ::windows::runtime::IInspectable {
from(value: IStorageItemExtraProperties) -> Self542     fn from(value: IStorageItemExtraProperties) -> Self {
543         value.0
544     }
545 }
546 impl ::std::convert::From<&IStorageItemExtraProperties> for ::windows::runtime::IInspectable {
from(value: &IStorageItemExtraProperties) -> Self547     fn from(value: &IStorageItemExtraProperties) -> Self {
548         value.0.clone()
549     }
550 }
551 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IStorageItemExtraProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>552     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
553         ::windows::runtime::Param::Owned(self.0)
554     }
555 }
556 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IStorageItemExtraProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>557     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
558         ::windows::runtime::Param::Borrowed(&self.0)
559     }
560 }
561 #[repr(C)]
562 #[doc(hidden)]
563 pub struct IStorageItemExtraProperties_abi(
564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
566     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
569     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
570     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertiestoretrieve: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
571     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
572     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, propertiestosave: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
573     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
574     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
575     #[cfg(not(feature = "Foundation"))] usize,
576 );
577 #[repr(transparent)]
578 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
579 #[doc(hidden)]
580 pub struct IThumbnailProperties(::windows::runtime::IInspectable);
581 unsafe impl ::windows::runtime::Interface for IThumbnailProperties {
582     type Vtable = IThumbnailProperties_abi;
583     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1765659695, 56295, 18869, [179, 179, 40, 147, 172, 93, 52, 35]);
584 }
585 #[repr(C)]
586 #[doc(hidden)]
587 pub struct IThumbnailProperties_abi(
588     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
589     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
590     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
591     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
592     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
593     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
594     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
595     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
596     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
597     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ThumbnailType) -> ::windows::runtime::HRESULT,
598 );
599 #[repr(transparent)]
600 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
601 #[doc(hidden)]
602 pub struct IVideoProperties(::windows::runtime::IInspectable);
603 unsafe impl ::windows::runtime::Interface for IVideoProperties {
604     type Vtable = IVideoProperties_abi;
605     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1905976583, 26846, 19896, [151, 222, 73, 153, 140, 5, 159, 47]);
606 }
607 #[repr(C)]
608 #[doc(hidden)]
609 pub struct IVideoProperties_abi(
610     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
611     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
612     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
613     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
614     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
615     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
616     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
618     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
619     #[cfg(not(feature = "Foundation_Collections"))] usize,
620     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
621     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
622     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::TimeSpan) -> ::windows::runtime::HRESULT,
623     #[cfg(not(feature = "Foundation"))] usize,
624     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
625     #[cfg(not(feature = "Foundation"))] usize,
626     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
627     #[cfg(not(feature = "Foundation"))] usize,
628     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
629     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
630     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
631     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
632     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
633     #[cfg(not(feature = "Foundation_Collections"))] usize,
634     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
635     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
636     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
637     #[cfg(not(feature = "Foundation_Collections"))] usize,
638     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
639     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: u32) -> ::windows::runtime::HRESULT,
640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
641     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
642     #[cfg(not(feature = "Foundation_Collections"))] usize,
643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut VideoOrientation) -> ::windows::runtime::HRESULT,
644 );
645 #[repr(transparent)]
646 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
647 pub struct ImageProperties(::windows::runtime::IInspectable);
648 impl ImageProperties {
Rating(&self) -> ::windows::runtime::Result<u32>649     pub fn Rating(&self) -> ::windows::runtime::Result<u32> {
650         let this = self;
651         unsafe {
652             let mut result__: u32 = ::std::mem::zeroed();
653             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
654         }
655     }
SetRating(&self, value: u32) -> ::windows::runtime::Result<()>656     pub fn SetRating(&self, value: u32) -> ::windows::runtime::Result<()> {
657         let this = self;
658         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
659     }
660     #[cfg(feature = "Foundation_Collections")]
Keywords(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>661     pub fn Keywords(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
662         let this = self;
663         unsafe {
664             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
665             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
666         }
667     }
668     #[cfg(feature = "Foundation")]
DateTaken(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime>669     pub fn DateTaken(&self) -> ::windows::runtime::Result<super::super::Foundation::DateTime> {
670         let this = self;
671         unsafe {
672             let mut result__: super::super::Foundation::DateTime = ::std::mem::zeroed();
673             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::DateTime>(result__)
674         }
675     }
676     #[cfg(feature = "Foundation")]
SetDateTaken<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::runtime::Result<()>677     pub fn SetDateTaken<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::DateTime>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
678         let this = self;
679         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
680     }
Width(&self) -> ::windows::runtime::Result<u32>681     pub fn Width(&self) -> ::windows::runtime::Result<u32> {
682         let this = self;
683         unsafe {
684             let mut result__: u32 = ::std::mem::zeroed();
685             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
686         }
687     }
Height(&self) -> ::windows::runtime::Result<u32>688     pub fn Height(&self) -> ::windows::runtime::Result<u32> {
689         let this = self;
690         unsafe {
691             let mut result__: u32 = ::std::mem::zeroed();
692             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
693         }
694     }
Title(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>695     pub fn Title(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
696         let this = self;
697         unsafe {
698             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
699             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
700         }
701     }
SetTitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>702     pub fn SetTitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
703         let this = self;
704         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
705     }
706     #[cfg(feature = "Foundation")]
Latitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>707     pub fn Latitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
708         let this = self;
709         unsafe {
710             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
711             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
712         }
713     }
714     #[cfg(feature = "Foundation")]
Longitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>715     pub fn Longitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
716         let this = self;
717         unsafe {
718             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
719             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
720         }
721     }
CameraManufacturer(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>722     pub fn CameraManufacturer(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
723         let this = self;
724         unsafe {
725             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
726             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
727         }
728     }
SetCameraManufacturer<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>729     pub fn SetCameraManufacturer<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
730         let this = self;
731         unsafe { (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
732     }
CameraModel(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>733     pub fn CameraModel(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
734         let this = self;
735         unsafe {
736             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
737             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
738         }
739     }
SetCameraModel<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>740     pub fn SetCameraModel<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
741         let this = self;
742         unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
743     }
Orientation(&self) -> ::windows::runtime::Result<PhotoOrientation>744     pub fn Orientation(&self) -> ::windows::runtime::Result<PhotoOrientation> {
745         let this = self;
746         unsafe {
747             let mut result__: PhotoOrientation = ::std::mem::zeroed();
748             (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), &mut result__).from_abi::<PhotoOrientation>(result__)
749         }
750     }
751     #[cfg(feature = "Foundation_Collections")]
PeopleNames(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<::windows::runtime::HSTRING>>752     pub fn PeopleNames(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<::windows::runtime::HSTRING>> {
753         let this = self;
754         unsafe {
755             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
756             (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<::windows::runtime::HSTRING>>(result__)
757         }
758     }
759     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>760     pub fn RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>> {
761         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
762         unsafe {
763             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
764             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), propertiestoretrieve.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>(result__)
765         }
766     }
767     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>768     pub fn SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
769         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
770         unsafe {
771             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
772             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertiestosave.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
773         }
774     }
775     #[cfg(feature = "Foundation")]
SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>776     pub fn SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
777         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
778         unsafe {
779             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
780             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
781         }
782     }
783 }
784 unsafe impl ::windows::runtime::RuntimeType for ImageProperties {
785     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.FileProperties.ImageProperties;{523c9424-fcff-4275-afee-ecdb9ab47973})");
786 }
787 unsafe impl ::windows::runtime::Interface for ImageProperties {
788     type Vtable = IImageProperties_abi;
789     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1379701796, 64767, 17013, [175, 238, 236, 219, 154, 180, 121, 115]);
790 }
791 impl ::windows::runtime::RuntimeName for ImageProperties {
792     const NAME: &'static str = "Windows.Storage.FileProperties.ImageProperties";
793 }
794 impl ::std::convert::From<ImageProperties> for ::windows::runtime::IUnknown {
from(value: ImageProperties) -> Self795     fn from(value: ImageProperties) -> Self {
796         unsafe { ::std::mem::transmute(value) }
797     }
798 }
799 impl ::std::convert::From<&ImageProperties> for ::windows::runtime::IUnknown {
from(value: &ImageProperties) -> Self800     fn from(value: &ImageProperties) -> Self {
801         ::std::convert::From::from(::std::clone::Clone::clone(value))
802     }
803 }
804 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ImageProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>805     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
806         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
807     }
808 }
809 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ImageProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>810     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
811         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
812     }
813 }
814 impl ::std::convert::From<ImageProperties> for ::windows::runtime::IInspectable {
from(value: ImageProperties) -> Self815     fn from(value: ImageProperties) -> Self {
816         value.0
817     }
818 }
819 impl ::std::convert::From<&ImageProperties> for ::windows::runtime::IInspectable {
from(value: &ImageProperties) -> Self820     fn from(value: &ImageProperties) -> Self {
821         value.0.clone()
822     }
823 }
824 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ImageProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>825     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
826         ::windows::runtime::Param::Owned(self.0)
827     }
828 }
829 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ImageProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>830     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
831         ::windows::runtime::Param::Borrowed(&self.0)
832     }
833 }
834 impl ::std::convert::TryFrom<ImageProperties> for IStorageItemExtraProperties {
835     type Error = ::windows::runtime::Error;
try_from(value: ImageProperties) -> ::windows::runtime::Result<Self>836     fn try_from(value: ImageProperties) -> ::windows::runtime::Result<Self> {
837         ::std::convert::TryFrom::try_from(&value)
838     }
839 }
840 impl ::std::convert::TryFrom<&ImageProperties> for IStorageItemExtraProperties {
841     type Error = ::windows::runtime::Error;
try_from(value: &ImageProperties) -> ::windows::runtime::Result<Self>842     fn try_from(value: &ImageProperties) -> ::windows::runtime::Result<Self> {
843         ::windows::runtime::Interface::cast(value)
844     }
845 }
846 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for ImageProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>847     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
848         ::windows::runtime::IntoParam::into_param(&self)
849     }
850 }
851 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for &ImageProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>852     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
853         ::std::convert::TryInto::<IStorageItemExtraProperties>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
854     }
855 }
856 #[repr(transparent)]
857 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
858 pub struct MusicProperties(::windows::runtime::IInspectable);
859 impl MusicProperties {
Album(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>860     pub fn Album(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
861         let this = self;
862         unsafe {
863             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
864             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
865         }
866     }
SetAlbum<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>867     pub fn SetAlbum<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
868         let this = self;
869         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
870     }
Artist(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>871     pub fn Artist(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
872         let this = self;
873         unsafe {
874             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
875             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
876         }
877     }
SetArtist<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>878     pub fn SetArtist<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
879         let this = self;
880         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
881     }
882     #[cfg(feature = "Foundation_Collections")]
Genre(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>883     pub fn Genre(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
884         let this = self;
885         unsafe {
886             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
887             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
888         }
889     }
TrackNumber(&self) -> ::windows::runtime::Result<u32>890     pub fn TrackNumber(&self) -> ::windows::runtime::Result<u32> {
891         let this = self;
892         unsafe {
893             let mut result__: u32 = ::std::mem::zeroed();
894             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
895         }
896     }
SetTrackNumber(&self, value: u32) -> ::windows::runtime::Result<()>897     pub fn SetTrackNumber(&self, value: u32) -> ::windows::runtime::Result<()> {
898         let this = self;
899         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value).ok() }
900     }
Title(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>901     pub fn Title(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
902         let this = self;
903         unsafe {
904             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
905             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
906         }
907     }
SetTitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>908     pub fn SetTitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
909         let this = self;
910         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
911     }
Rating(&self) -> ::windows::runtime::Result<u32>912     pub fn Rating(&self) -> ::windows::runtime::Result<u32> {
913         let this = self;
914         unsafe {
915             let mut result__: u32 = ::std::mem::zeroed();
916             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
917         }
918     }
SetRating(&self, value: u32) -> ::windows::runtime::Result<()>919     pub fn SetRating(&self, value: u32) -> ::windows::runtime::Result<()> {
920         let this = self;
921         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value).ok() }
922     }
923     #[cfg(feature = "Foundation")]
Duration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>924     pub fn Duration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
925         let this = self;
926         unsafe {
927             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
928             (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
929         }
930     }
Bitrate(&self) -> ::windows::runtime::Result<u32>931     pub fn Bitrate(&self) -> ::windows::runtime::Result<u32> {
932         let this = self;
933         unsafe {
934             let mut result__: u32 = ::std::mem::zeroed();
935             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
936         }
937     }
AlbumArtist(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>938     pub fn AlbumArtist(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
939         let this = self;
940         unsafe {
941             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
942             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
943         }
944     }
SetAlbumArtist<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>945     pub fn SetAlbumArtist<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
946         let this = self;
947         unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
948     }
949     #[cfg(feature = "Foundation_Collections")]
Composers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>950     pub fn Composers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
951         let this = self;
952         unsafe {
953             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
954             (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
955         }
956     }
957     #[cfg(feature = "Foundation_Collections")]
Conductors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>958     pub fn Conductors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
959         let this = self;
960         unsafe {
961             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
962             (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
963         }
964     }
Subtitle(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>965     pub fn Subtitle(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
966         let this = self;
967         unsafe {
968             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
969             (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
970         }
971     }
SetSubtitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>972     pub fn SetSubtitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
973         let this = self;
974         unsafe { (::windows::runtime::Interface::vtable(this).24)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
975     }
976     #[cfg(feature = "Foundation_Collections")]
Producers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>977     pub fn Producers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
978         let this = self;
979         unsafe {
980             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
981             (::windows::runtime::Interface::vtable(this).25)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
982         }
983     }
Publisher(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>984     pub fn Publisher(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
985         let this = self;
986         unsafe {
987             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
988             (::windows::runtime::Interface::vtable(this).26)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
989         }
990     }
SetPublisher<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>991     pub fn SetPublisher<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
992         let this = self;
993         unsafe { (::windows::runtime::Interface::vtable(this).27)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
994     }
995     #[cfg(feature = "Foundation_Collections")]
Writers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>996     pub fn Writers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
997         let this = self;
998         unsafe {
999             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1000             (::windows::runtime::Interface::vtable(this).28)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
1001         }
1002     }
Year(&self) -> ::windows::runtime::Result<u32>1003     pub fn Year(&self) -> ::windows::runtime::Result<u32> {
1004         let this = self;
1005         unsafe {
1006             let mut result__: u32 = ::std::mem::zeroed();
1007             (::windows::runtime::Interface::vtable(this).29)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1008         }
1009     }
SetYear(&self, value: u32) -> ::windows::runtime::Result<()>1010     pub fn SetYear(&self, value: u32) -> ::windows::runtime::Result<()> {
1011         let this = self;
1012         unsafe { (::windows::runtime::Interface::vtable(this).30)(::std::mem::transmute_copy(this), value).ok() }
1013     }
1014     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>1015     pub fn RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>> {
1016         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
1017         unsafe {
1018             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1019             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), propertiestoretrieve.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>(result__)
1020         }
1021     }
1022     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>1023     pub fn SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
1024         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
1025         unsafe {
1026             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1027             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertiestosave.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
1028         }
1029     }
1030     #[cfg(feature = "Foundation")]
SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>1031     pub fn SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
1032         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
1033         unsafe {
1034             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1035             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
1036         }
1037     }
1038 }
1039 unsafe impl ::windows::runtime::RuntimeType for MusicProperties {
1040     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.FileProperties.MusicProperties;{bc8aab62-66ec-419a-bc5d-ca65a4cb46da})");
1041 }
1042 unsafe impl ::windows::runtime::Interface for MusicProperties {
1043     type Vtable = IMusicProperties_abi;
1044     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3163204450, 26348, 16794, [188, 93, 202, 101, 164, 203, 70, 218]);
1045 }
1046 impl ::windows::runtime::RuntimeName for MusicProperties {
1047     const NAME: &'static str = "Windows.Storage.FileProperties.MusicProperties";
1048 }
1049 impl ::std::convert::From<MusicProperties> for ::windows::runtime::IUnknown {
from(value: MusicProperties) -> Self1050     fn from(value: MusicProperties) -> Self {
1051         unsafe { ::std::mem::transmute(value) }
1052     }
1053 }
1054 impl ::std::convert::From<&MusicProperties> for ::windows::runtime::IUnknown {
from(value: &MusicProperties) -> Self1055     fn from(value: &MusicProperties) -> Self {
1056         ::std::convert::From::from(::std::clone::Clone::clone(value))
1057     }
1058 }
1059 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for MusicProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1060     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1061         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1062     }
1063 }
1064 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &MusicProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1065     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1066         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1067     }
1068 }
1069 impl ::std::convert::From<MusicProperties> for ::windows::runtime::IInspectable {
from(value: MusicProperties) -> Self1070     fn from(value: MusicProperties) -> Self {
1071         value.0
1072     }
1073 }
1074 impl ::std::convert::From<&MusicProperties> for ::windows::runtime::IInspectable {
from(value: &MusicProperties) -> Self1075     fn from(value: &MusicProperties) -> Self {
1076         value.0.clone()
1077     }
1078 }
1079 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for MusicProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1080     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1081         ::windows::runtime::Param::Owned(self.0)
1082     }
1083 }
1084 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a MusicProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1085     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1086         ::windows::runtime::Param::Borrowed(&self.0)
1087     }
1088 }
1089 impl ::std::convert::TryFrom<MusicProperties> for IStorageItemExtraProperties {
1090     type Error = ::windows::runtime::Error;
try_from(value: MusicProperties) -> ::windows::runtime::Result<Self>1091     fn try_from(value: MusicProperties) -> ::windows::runtime::Result<Self> {
1092         ::std::convert::TryFrom::try_from(&value)
1093     }
1094 }
1095 impl ::std::convert::TryFrom<&MusicProperties> for IStorageItemExtraProperties {
1096     type Error = ::windows::runtime::Error;
try_from(value: &MusicProperties) -> ::windows::runtime::Result<Self>1097     fn try_from(value: &MusicProperties) -> ::windows::runtime::Result<Self> {
1098         ::windows::runtime::Interface::cast(value)
1099     }
1100 }
1101 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for MusicProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>1102     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
1103         ::windows::runtime::IntoParam::into_param(&self)
1104     }
1105 }
1106 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for &MusicProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>1107     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
1108         ::std::convert::TryInto::<IStorageItemExtraProperties>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1109     }
1110 }
1111 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1112 #[repr(transparent)]
1113 pub struct PhotoOrientation(pub i32);
1114 impl PhotoOrientation {
1115     pub const Unspecified: PhotoOrientation = PhotoOrientation(0i32);
1116     pub const Normal: PhotoOrientation = PhotoOrientation(1i32);
1117     pub const FlipHorizontal: PhotoOrientation = PhotoOrientation(2i32);
1118     pub const Rotate180: PhotoOrientation = PhotoOrientation(3i32);
1119     pub const FlipVertical: PhotoOrientation = PhotoOrientation(4i32);
1120     pub const Transpose: PhotoOrientation = PhotoOrientation(5i32);
1121     pub const Rotate270: PhotoOrientation = PhotoOrientation(6i32);
1122     pub const Transverse: PhotoOrientation = PhotoOrientation(7i32);
1123     pub const Rotate90: PhotoOrientation = PhotoOrientation(8i32);
1124 }
1125 impl ::std::convert::From<i32> for PhotoOrientation {
from(value: i32) -> Self1126     fn from(value: i32) -> Self {
1127         Self(value)
1128     }
1129 }
1130 unsafe impl ::windows::runtime::Abi for PhotoOrientation {
1131     type Abi = Self;
1132     type DefaultType = Self;
1133 }
1134 unsafe impl ::windows::runtime::RuntimeType for PhotoOrientation {
1135     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.FileProperties.PhotoOrientation;i4)");
1136 }
1137 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1138 #[repr(transparent)]
1139 pub struct PropertyPrefetchOptions(pub u32);
1140 impl PropertyPrefetchOptions {
1141     pub const None: PropertyPrefetchOptions = PropertyPrefetchOptions(0u32);
1142     pub const MusicProperties: PropertyPrefetchOptions = PropertyPrefetchOptions(1u32);
1143     pub const VideoProperties: PropertyPrefetchOptions = PropertyPrefetchOptions(2u32);
1144     pub const ImageProperties: PropertyPrefetchOptions = PropertyPrefetchOptions(4u32);
1145     pub const DocumentProperties: PropertyPrefetchOptions = PropertyPrefetchOptions(8u32);
1146     pub const BasicProperties: PropertyPrefetchOptions = PropertyPrefetchOptions(16u32);
1147 }
1148 impl ::std::convert::From<u32> for PropertyPrefetchOptions {
from(value: u32) -> Self1149     fn from(value: u32) -> Self {
1150         Self(value)
1151     }
1152 }
1153 unsafe impl ::windows::runtime::Abi for PropertyPrefetchOptions {
1154     type Abi = Self;
1155     type DefaultType = Self;
1156 }
1157 unsafe impl ::windows::runtime::RuntimeType for PropertyPrefetchOptions {
1158     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.FileProperties.PropertyPrefetchOptions;u4)");
1159 }
1160 impl ::std::ops::BitOr for PropertyPrefetchOptions {
1161     type Output = Self;
bitor(self, rhs: Self) -> Self1162     fn bitor(self, rhs: Self) -> Self {
1163         Self(self.0 | rhs.0)
1164     }
1165 }
1166 impl ::std::ops::BitAnd for PropertyPrefetchOptions {
1167     type Output = Self;
bitand(self, rhs: Self) -> Self1168     fn bitand(self, rhs: Self) -> Self {
1169         Self(self.0 & rhs.0)
1170     }
1171 }
1172 impl ::std::ops::BitOrAssign for PropertyPrefetchOptions {
bitor_assign(&mut self, rhs: Self)1173     fn bitor_assign(&mut self, rhs: Self) {
1174         self.0.bitor_assign(rhs.0)
1175     }
1176 }
1177 impl ::std::ops::BitAndAssign for PropertyPrefetchOptions {
bitand_assign(&mut self, rhs: Self)1178     fn bitand_assign(&mut self, rhs: Self) {
1179         self.0.bitand_assign(rhs.0)
1180     }
1181 }
1182 impl ::std::ops::Not for PropertyPrefetchOptions {
1183     type Output = Self;
not(self) -> Self1184     fn not(self) -> Self {
1185         Self(self.0.not())
1186     }
1187 }
1188 #[repr(transparent)]
1189 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1190 pub struct StorageItemContentProperties(::windows::runtime::IInspectable);
1191 impl StorageItemContentProperties {
1192     #[cfg(feature = "Foundation")]
GetMusicPropertiesAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<MusicProperties>>1193     pub fn GetMusicPropertiesAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<MusicProperties>> {
1194         let this = self;
1195         unsafe {
1196             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1197             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<MusicProperties>>(result__)
1198         }
1199     }
1200     #[cfg(feature = "Foundation")]
GetVideoPropertiesAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<VideoProperties>>1201     pub fn GetVideoPropertiesAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<VideoProperties>> {
1202         let this = self;
1203         unsafe {
1204             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1205             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<VideoProperties>>(result__)
1206         }
1207     }
1208     #[cfg(feature = "Foundation")]
GetImagePropertiesAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ImageProperties>>1209     pub fn GetImagePropertiesAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<ImageProperties>> {
1210         let this = self;
1211         unsafe {
1212             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1213             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<ImageProperties>>(result__)
1214         }
1215     }
1216     #[cfg(feature = "Foundation")]
GetDocumentPropertiesAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<DocumentProperties>>1217     pub fn GetDocumentPropertiesAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<DocumentProperties>> {
1218         let this = self;
1219         unsafe {
1220             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1221             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<DocumentProperties>>(result__)
1222         }
1223     }
1224     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>1225     pub fn RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>> {
1226         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
1227         unsafe {
1228             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1229             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), propertiestoretrieve.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>(result__)
1230         }
1231     }
1232     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>1233     pub fn SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
1234         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
1235         unsafe {
1236             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1237             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertiestosave.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
1238         }
1239     }
1240     #[cfg(feature = "Foundation")]
SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>1241     pub fn SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
1242         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
1243         unsafe {
1244             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1245             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
1246         }
1247     }
1248 }
1249 unsafe impl ::windows::runtime::RuntimeType for StorageItemContentProperties {
1250     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.FileProperties.StorageItemContentProperties;{05294bad-bc38-48bf-85d7-770e0e2ae0ba})");
1251 }
1252 unsafe impl ::windows::runtime::Interface for StorageItemContentProperties {
1253     type Vtable = IStorageItemContentProperties_abi;
1254     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(86592429, 48184, 18623, [133, 215, 119, 14, 14, 42, 224, 186]);
1255 }
1256 impl ::windows::runtime::RuntimeName for StorageItemContentProperties {
1257     const NAME: &'static str = "Windows.Storage.FileProperties.StorageItemContentProperties";
1258 }
1259 impl ::std::convert::From<StorageItemContentProperties> for ::windows::runtime::IUnknown {
from(value: StorageItemContentProperties) -> Self1260     fn from(value: StorageItemContentProperties) -> Self {
1261         unsafe { ::std::mem::transmute(value) }
1262     }
1263 }
1264 impl ::std::convert::From<&StorageItemContentProperties> for ::windows::runtime::IUnknown {
from(value: &StorageItemContentProperties) -> Self1265     fn from(value: &StorageItemContentProperties) -> Self {
1266         ::std::convert::From::from(::std::clone::Clone::clone(value))
1267     }
1268 }
1269 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for StorageItemContentProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1270     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1271         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1272     }
1273 }
1274 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &StorageItemContentProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1275     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1276         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1277     }
1278 }
1279 impl ::std::convert::From<StorageItemContentProperties> for ::windows::runtime::IInspectable {
from(value: StorageItemContentProperties) -> Self1280     fn from(value: StorageItemContentProperties) -> Self {
1281         value.0
1282     }
1283 }
1284 impl ::std::convert::From<&StorageItemContentProperties> for ::windows::runtime::IInspectable {
from(value: &StorageItemContentProperties) -> Self1285     fn from(value: &StorageItemContentProperties) -> Self {
1286         value.0.clone()
1287     }
1288 }
1289 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for StorageItemContentProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1290     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1291         ::windows::runtime::Param::Owned(self.0)
1292     }
1293 }
1294 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a StorageItemContentProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1295     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1296         ::windows::runtime::Param::Borrowed(&self.0)
1297     }
1298 }
1299 impl ::std::convert::TryFrom<StorageItemContentProperties> for IStorageItemExtraProperties {
1300     type Error = ::windows::runtime::Error;
try_from(value: StorageItemContentProperties) -> ::windows::runtime::Result<Self>1301     fn try_from(value: StorageItemContentProperties) -> ::windows::runtime::Result<Self> {
1302         ::std::convert::TryFrom::try_from(&value)
1303     }
1304 }
1305 impl ::std::convert::TryFrom<&StorageItemContentProperties> for IStorageItemExtraProperties {
1306     type Error = ::windows::runtime::Error;
try_from(value: &StorageItemContentProperties) -> ::windows::runtime::Result<Self>1307     fn try_from(value: &StorageItemContentProperties) -> ::windows::runtime::Result<Self> {
1308         ::windows::runtime::Interface::cast(value)
1309     }
1310 }
1311 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for StorageItemContentProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>1312     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
1313         ::windows::runtime::IntoParam::into_param(&self)
1314     }
1315 }
1316 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for &StorageItemContentProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>1317     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
1318         ::std::convert::TryInto::<IStorageItemExtraProperties>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1319     }
1320 }
1321 #[cfg(feature = "Storage_Streams")]
1322 #[repr(transparent)]
1323 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1324 pub struct StorageItemThumbnail(::windows::runtime::IInspectable);
1325 #[cfg(feature = "Storage_Streams")]
1326 impl StorageItemThumbnail {
1327     #[cfg(feature = "Foundation")]
Close(&self) -> ::windows::runtime::Result<()>1328     pub fn Close(&self) -> ::windows::runtime::Result<()> {
1329         let this = &::windows::runtime::Interface::cast::<super::super::Foundation::IClosable>(self)?;
1330         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
1331     }
OriginalWidth(&self) -> ::windows::runtime::Result<u32>1332     pub fn OriginalWidth(&self) -> ::windows::runtime::Result<u32> {
1333         let this = &::windows::runtime::Interface::cast::<IThumbnailProperties>(self)?;
1334         unsafe {
1335             let mut result__: u32 = ::std::mem::zeroed();
1336             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1337         }
1338     }
OriginalHeight(&self) -> ::windows::runtime::Result<u32>1339     pub fn OriginalHeight(&self) -> ::windows::runtime::Result<u32> {
1340         let this = &::windows::runtime::Interface::cast::<IThumbnailProperties>(self)?;
1341         unsafe {
1342             let mut result__: u32 = ::std::mem::zeroed();
1343             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1344         }
1345     }
ReturnedSmallerCachedSize(&self) -> ::windows::runtime::Result<bool>1346     pub fn ReturnedSmallerCachedSize(&self) -> ::windows::runtime::Result<bool> {
1347         let this = &::windows::runtime::Interface::cast::<IThumbnailProperties>(self)?;
1348         unsafe {
1349             let mut result__: bool = ::std::mem::zeroed();
1350             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1351         }
1352     }
Type(&self) -> ::windows::runtime::Result<ThumbnailType>1353     pub fn Type(&self) -> ::windows::runtime::Result<ThumbnailType> {
1354         let this = &::windows::runtime::Interface::cast::<IThumbnailProperties>(self)?;
1355         unsafe {
1356             let mut result__: ThumbnailType = ::std::mem::zeroed();
1357             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ThumbnailType>(result__)
1358         }
1359     }
1360     #[cfg(feature = "Storage_Streams")]
ContentType(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1361     pub fn ContentType(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1362         let this = &::windows::runtime::Interface::cast::<super::Streams::IContentTypeProvider>(self)?;
1363         unsafe {
1364             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1365             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1366         }
1367     }
1368     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::Streams::IBuffer>>(&self, buffer: Param0, count: u32, options: super::Streams::InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<super::Streams::IBuffer, u32>>1369     pub fn ReadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::Streams::IBuffer>>(&self, buffer: Param0, count: u32, options: super::Streams::InputStreamOptions) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<super::Streams::IBuffer, u32>> {
1370         let this = &::windows::runtime::Interface::cast::<super::Streams::IInputStream>(self)?;
1371         unsafe {
1372             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1373             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), count, options, &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<super::Streams::IBuffer, u32>>(result__)
1374         }
1375     }
1376     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::Streams::IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>1377     pub fn WriteAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::Streams::IBuffer>>(&self, buffer: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>> {
1378         let this = &::windows::runtime::Interface::cast::<super::Streams::IOutputStream>(self)?;
1379         unsafe {
1380             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1381             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), buffer.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<u32, u32>>(result__)
1382         }
1383     }
1384     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>>1385     pub fn FlushAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<bool>> {
1386         let this = &::windows::runtime::Interface::cast::<super::Streams::IOutputStream>(self)?;
1387         unsafe {
1388             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1389             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<bool>>(result__)
1390         }
1391     }
1392     #[cfg(feature = "Storage_Streams")]
Size(&self) -> ::windows::runtime::Result<u64>1393     pub fn Size(&self) -> ::windows::runtime::Result<u64> {
1394         let this = &::windows::runtime::Interface::cast::<super::Streams::IRandomAccessStream>(self)?;
1395         unsafe {
1396             let mut result__: u64 = ::std::mem::zeroed();
1397             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
1398         }
1399     }
1400     #[cfg(feature = "Storage_Streams")]
SetSize(&self, value: u64) -> ::windows::runtime::Result<()>1401     pub fn SetSize(&self, value: u64) -> ::windows::runtime::Result<()> {
1402         let this = &::windows::runtime::Interface::cast::<super::Streams::IRandomAccessStream>(self)?;
1403         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1404     }
1405     #[cfg(feature = "Storage_Streams")]
GetInputStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::Streams::IInputStream>1406     pub fn GetInputStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::Streams::IInputStream> {
1407         let this = &::windows::runtime::Interface::cast::<super::Streams::IRandomAccessStream>(self)?;
1408         unsafe {
1409             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1410             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<super::Streams::IInputStream>(result__)
1411         }
1412     }
1413     #[cfg(feature = "Storage_Streams")]
GetOutputStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::Streams::IOutputStream>1414     pub fn GetOutputStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::Streams::IOutputStream> {
1415         let this = &::windows::runtime::Interface::cast::<super::Streams::IRandomAccessStream>(self)?;
1416         unsafe {
1417             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1418             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<super::Streams::IOutputStream>(result__)
1419         }
1420     }
1421     #[cfg(feature = "Storage_Streams")]
Position(&self) -> ::windows::runtime::Result<u64>1422     pub fn Position(&self) -> ::windows::runtime::Result<u64> {
1423         let this = &::windows::runtime::Interface::cast::<super::Streams::IRandomAccessStream>(self)?;
1424         unsafe {
1425             let mut result__: u64 = ::std::mem::zeroed();
1426             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u64>(result__)
1427         }
1428     }
1429     #[cfg(feature = "Storage_Streams")]
Seek(&self, position: u64) -> ::windows::runtime::Result<()>1430     pub fn Seek(&self, position: u64) -> ::windows::runtime::Result<()> {
1431         let this = &::windows::runtime::Interface::cast::<super::Streams::IRandomAccessStream>(self)?;
1432         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), position).ok() }
1433     }
1434     #[cfg(feature = "Storage_Streams")]
CloneStream(&self) -> ::windows::runtime::Result<super::Streams::IRandomAccessStream>1435     pub fn CloneStream(&self) -> ::windows::runtime::Result<super::Streams::IRandomAccessStream> {
1436         let this = &::windows::runtime::Interface::cast::<super::Streams::IRandomAccessStream>(self)?;
1437         unsafe {
1438             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1439             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::Streams::IRandomAccessStream>(result__)
1440         }
1441     }
1442     #[cfg(feature = "Storage_Streams")]
CanRead(&self) -> ::windows::runtime::Result<bool>1443     pub fn CanRead(&self) -> ::windows::runtime::Result<bool> {
1444         let this = &::windows::runtime::Interface::cast::<super::Streams::IRandomAccessStream>(self)?;
1445         unsafe {
1446             let mut result__: bool = ::std::mem::zeroed();
1447             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1448         }
1449     }
1450     #[cfg(feature = "Storage_Streams")]
CanWrite(&self) -> ::windows::runtime::Result<bool>1451     pub fn CanWrite(&self) -> ::windows::runtime::Result<bool> {
1452         let this = &::windows::runtime::Interface::cast::<super::Streams::IRandomAccessStream>(self)?;
1453         unsafe {
1454             let mut result__: bool = ::std::mem::zeroed();
1455             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1456         }
1457     }
1458 }
1459 #[cfg(feature = "Storage_Streams")]
1460 unsafe impl ::windows::runtime::RuntimeType for StorageItemThumbnail {
1461     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.FileProperties.StorageItemThumbnail;{cc254827-4b3d-438f-9232-10c76bc7e038})");
1462 }
1463 #[cfg(feature = "Storage_Streams")]
1464 unsafe impl ::windows::runtime::Interface for StorageItemThumbnail {
1465     type Vtable = super::Streams::IRandomAccessStreamWithContentType_abi;
1466     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3424995367, 19261, 17295, [146, 50, 16, 199, 107, 199, 224, 56]);
1467 }
1468 #[cfg(feature = "Storage_Streams")]
1469 impl ::windows::runtime::RuntimeName for StorageItemThumbnail {
1470     const NAME: &'static str = "Windows.Storage.FileProperties.StorageItemThumbnail";
1471 }
1472 #[cfg(feature = "Storage_Streams")]
1473 impl ::std::convert::From<StorageItemThumbnail> for ::windows::runtime::IUnknown {
from(value: StorageItemThumbnail) -> Self1474     fn from(value: StorageItemThumbnail) -> Self {
1475         unsafe { ::std::mem::transmute(value) }
1476     }
1477 }
1478 #[cfg(feature = "Storage_Streams")]
1479 impl ::std::convert::From<&StorageItemThumbnail> for ::windows::runtime::IUnknown {
from(value: &StorageItemThumbnail) -> Self1480     fn from(value: &StorageItemThumbnail) -> Self {
1481         ::std::convert::From::from(::std::clone::Clone::clone(value))
1482     }
1483 }
1484 #[cfg(feature = "Storage_Streams")]
1485 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1486     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1487         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1488     }
1489 }
1490 #[cfg(feature = "Storage_Streams")]
1491 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1492     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1493         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1494     }
1495 }
1496 #[cfg(feature = "Storage_Streams")]
1497 impl ::std::convert::From<StorageItemThumbnail> for ::windows::runtime::IInspectable {
from(value: StorageItemThumbnail) -> Self1498     fn from(value: StorageItemThumbnail) -> Self {
1499         value.0
1500     }
1501 }
1502 #[cfg(feature = "Storage_Streams")]
1503 impl ::std::convert::From<&StorageItemThumbnail> for ::windows::runtime::IInspectable {
from(value: &StorageItemThumbnail) -> Self1504     fn from(value: &StorageItemThumbnail) -> Self {
1505         value.0.clone()
1506     }
1507 }
1508 #[cfg(feature = "Storage_Streams")]
1509 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1510     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1511         ::windows::runtime::Param::Owned(self.0)
1512     }
1513 }
1514 #[cfg(feature = "Storage_Streams")]
1515 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1516     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1517         ::windows::runtime::Param::Borrowed(&self.0)
1518     }
1519 }
1520 #[cfg(feature = "Storage_Streams")]
1521 impl ::std::convert::From<StorageItemThumbnail> for super::Streams::IRandomAccessStreamWithContentType {
from(value: StorageItemThumbnail) -> Self1522     fn from(value: StorageItemThumbnail) -> Self {
1523         unsafe { ::std::mem::transmute(value) }
1524     }
1525 }
1526 #[cfg(feature = "Storage_Streams")]
1527 impl ::std::convert::From<&StorageItemThumbnail> for super::Streams::IRandomAccessStreamWithContentType {
from(value: &StorageItemThumbnail) -> Self1528     fn from(value: &StorageItemThumbnail) -> Self {
1529         ::std::convert::From::from(::std::clone::Clone::clone(value))
1530     }
1531 }
1532 #[cfg(feature = "Storage_Streams")]
1533 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IRandomAccessStreamWithContentType> for StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IRandomAccessStreamWithContentType>1534     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IRandomAccessStreamWithContentType> {
1535         ::windows::runtime::Param::Owned(::std::convert::Into::<super::Streams::IRandomAccessStreamWithContentType>::into(self))
1536     }
1537 }
1538 #[cfg(feature = "Storage_Streams")]
1539 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IRandomAccessStreamWithContentType> for &StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IRandomAccessStreamWithContentType>1540     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IRandomAccessStreamWithContentType> {
1541         ::windows::runtime::Param::Owned(::std::convert::Into::<super::Streams::IRandomAccessStreamWithContentType>::into(::std::clone::Clone::clone(self)))
1542     }
1543 }
1544 #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
1545 impl ::std::convert::TryFrom<StorageItemThumbnail> for super::super::Foundation::IClosable {
1546     type Error = ::windows::runtime::Error;
try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self>1547     fn try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1548         ::std::convert::TryFrom::try_from(&value)
1549     }
1550 }
1551 #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
1552 impl ::std::convert::TryFrom<&StorageItemThumbnail> for super::super::Foundation::IClosable {
1553     type Error = ::windows::runtime::Error;
try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self>1554     fn try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1555         ::windows::runtime::Interface::cast(value)
1556     }
1557 }
1558 #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
1559 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1560     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1561         ::windows::runtime::IntoParam::into_param(&self)
1562     }
1563 }
1564 #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
1565 impl<'a> ::windows::runtime::IntoParam<'a, super::super::Foundation::IClosable> for &StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable>1566     fn into_param(self) -> ::windows::runtime::Param<'a, super::super::Foundation::IClosable> {
1567         ::std::convert::TryInto::<super::super::Foundation::IClosable>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1568     }
1569 }
1570 #[cfg(feature = "Storage_Streams")]
1571 impl ::std::convert::TryFrom<StorageItemThumbnail> for super::Streams::IContentTypeProvider {
1572     type Error = ::windows::runtime::Error;
try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self>1573     fn try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1574         ::std::convert::TryFrom::try_from(&value)
1575     }
1576 }
1577 #[cfg(feature = "Storage_Streams")]
1578 impl ::std::convert::TryFrom<&StorageItemThumbnail> for super::Streams::IContentTypeProvider {
1579     type Error = ::windows::runtime::Error;
try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self>1580     fn try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1581         ::windows::runtime::Interface::cast(value)
1582     }
1583 }
1584 #[cfg(feature = "Storage_Streams")]
1585 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IContentTypeProvider> for StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IContentTypeProvider>1586     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IContentTypeProvider> {
1587         ::windows::runtime::IntoParam::into_param(&self)
1588     }
1589 }
1590 #[cfg(feature = "Storage_Streams")]
1591 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IContentTypeProvider> for &StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IContentTypeProvider>1592     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IContentTypeProvider> {
1593         ::std::convert::TryInto::<super::Streams::IContentTypeProvider>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1594     }
1595 }
1596 #[cfg(feature = "Storage_Streams")]
1597 impl ::std::convert::TryFrom<StorageItemThumbnail> for super::Streams::IInputStream {
1598     type Error = ::windows::runtime::Error;
try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self>1599     fn try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1600         ::std::convert::TryFrom::try_from(&value)
1601     }
1602 }
1603 #[cfg(feature = "Storage_Streams")]
1604 impl ::std::convert::TryFrom<&StorageItemThumbnail> for super::Streams::IInputStream {
1605     type Error = ::windows::runtime::Error;
try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self>1606     fn try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1607         ::windows::runtime::Interface::cast(value)
1608     }
1609 }
1610 #[cfg(feature = "Storage_Streams")]
1611 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IInputStream> for StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IInputStream>1612     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IInputStream> {
1613         ::windows::runtime::IntoParam::into_param(&self)
1614     }
1615 }
1616 #[cfg(feature = "Storage_Streams")]
1617 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IInputStream> for &StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IInputStream>1618     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IInputStream> {
1619         ::std::convert::TryInto::<super::Streams::IInputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1620     }
1621 }
1622 #[cfg(feature = "Storage_Streams")]
1623 impl ::std::convert::TryFrom<StorageItemThumbnail> for super::Streams::IOutputStream {
1624     type Error = ::windows::runtime::Error;
try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self>1625     fn try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1626         ::std::convert::TryFrom::try_from(&value)
1627     }
1628 }
1629 #[cfg(feature = "Storage_Streams")]
1630 impl ::std::convert::TryFrom<&StorageItemThumbnail> for super::Streams::IOutputStream {
1631     type Error = ::windows::runtime::Error;
try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self>1632     fn try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1633         ::windows::runtime::Interface::cast(value)
1634     }
1635 }
1636 #[cfg(feature = "Storage_Streams")]
1637 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IOutputStream> for StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IOutputStream>1638     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IOutputStream> {
1639         ::windows::runtime::IntoParam::into_param(&self)
1640     }
1641 }
1642 #[cfg(feature = "Storage_Streams")]
1643 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IOutputStream> for &StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IOutputStream>1644     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IOutputStream> {
1645         ::std::convert::TryInto::<super::Streams::IOutputStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1646     }
1647 }
1648 #[cfg(feature = "Storage_Streams")]
1649 impl ::std::convert::TryFrom<StorageItemThumbnail> for super::Streams::IRandomAccessStream {
1650     type Error = ::windows::runtime::Error;
try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self>1651     fn try_from(value: StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1652         ::std::convert::TryFrom::try_from(&value)
1653     }
1654 }
1655 #[cfg(feature = "Storage_Streams")]
1656 impl ::std::convert::TryFrom<&StorageItemThumbnail> for super::Streams::IRandomAccessStream {
1657     type Error = ::windows::runtime::Error;
try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self>1658     fn try_from(value: &StorageItemThumbnail) -> ::windows::runtime::Result<Self> {
1659         ::windows::runtime::Interface::cast(value)
1660     }
1661 }
1662 #[cfg(feature = "Storage_Streams")]
1663 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IRandomAccessStream> for StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IRandomAccessStream>1664     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IRandomAccessStream> {
1665         ::windows::runtime::IntoParam::into_param(&self)
1666     }
1667 }
1668 #[cfg(feature = "Storage_Streams")]
1669 impl<'a> ::windows::runtime::IntoParam<'a, super::Streams::IRandomAccessStream> for &StorageItemThumbnail {
into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IRandomAccessStream>1670     fn into_param(self) -> ::windows::runtime::Param<'a, super::Streams::IRandomAccessStream> {
1671         ::std::convert::TryInto::<super::Streams::IRandomAccessStream>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1672     }
1673 }
1674 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1675 #[repr(transparent)]
1676 pub struct ThumbnailMode(pub i32);
1677 impl ThumbnailMode {
1678     pub const PicturesView: ThumbnailMode = ThumbnailMode(0i32);
1679     pub const VideosView: ThumbnailMode = ThumbnailMode(1i32);
1680     pub const MusicView: ThumbnailMode = ThumbnailMode(2i32);
1681     pub const DocumentsView: ThumbnailMode = ThumbnailMode(3i32);
1682     pub const ListView: ThumbnailMode = ThumbnailMode(4i32);
1683     pub const SingleItem: ThumbnailMode = ThumbnailMode(5i32);
1684 }
1685 impl ::std::convert::From<i32> for ThumbnailMode {
from(value: i32) -> Self1686     fn from(value: i32) -> Self {
1687         Self(value)
1688     }
1689 }
1690 unsafe impl ::windows::runtime::Abi for ThumbnailMode {
1691     type Abi = Self;
1692     type DefaultType = Self;
1693 }
1694 unsafe impl ::windows::runtime::RuntimeType for ThumbnailMode {
1695     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.FileProperties.ThumbnailMode;i4)");
1696 }
1697 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1698 #[repr(transparent)]
1699 pub struct ThumbnailOptions(pub u32);
1700 impl ThumbnailOptions {
1701     pub const None: ThumbnailOptions = ThumbnailOptions(0u32);
1702     pub const ReturnOnlyIfCached: ThumbnailOptions = ThumbnailOptions(1u32);
1703     pub const ResizeThumbnail: ThumbnailOptions = ThumbnailOptions(2u32);
1704     pub const UseCurrentScale: ThumbnailOptions = ThumbnailOptions(4u32);
1705 }
1706 impl ::std::convert::From<u32> for ThumbnailOptions {
from(value: u32) -> Self1707     fn from(value: u32) -> Self {
1708         Self(value)
1709     }
1710 }
1711 unsafe impl ::windows::runtime::Abi for ThumbnailOptions {
1712     type Abi = Self;
1713     type DefaultType = Self;
1714 }
1715 unsafe impl ::windows::runtime::RuntimeType for ThumbnailOptions {
1716     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.FileProperties.ThumbnailOptions;u4)");
1717 }
1718 impl ::std::ops::BitOr for ThumbnailOptions {
1719     type Output = Self;
bitor(self, rhs: Self) -> Self1720     fn bitor(self, rhs: Self) -> Self {
1721         Self(self.0 | rhs.0)
1722     }
1723 }
1724 impl ::std::ops::BitAnd for ThumbnailOptions {
1725     type Output = Self;
bitand(self, rhs: Self) -> Self1726     fn bitand(self, rhs: Self) -> Self {
1727         Self(self.0 & rhs.0)
1728     }
1729 }
1730 impl ::std::ops::BitOrAssign for ThumbnailOptions {
bitor_assign(&mut self, rhs: Self)1731     fn bitor_assign(&mut self, rhs: Self) {
1732         self.0.bitor_assign(rhs.0)
1733     }
1734 }
1735 impl ::std::ops::BitAndAssign for ThumbnailOptions {
bitand_assign(&mut self, rhs: Self)1736     fn bitand_assign(&mut self, rhs: Self) {
1737         self.0.bitand_assign(rhs.0)
1738     }
1739 }
1740 impl ::std::ops::Not for ThumbnailOptions {
1741     type Output = Self;
not(self) -> Self1742     fn not(self) -> Self {
1743         Self(self.0.not())
1744     }
1745 }
1746 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1747 #[repr(transparent)]
1748 pub struct ThumbnailType(pub i32);
1749 impl ThumbnailType {
1750     pub const Image: ThumbnailType = ThumbnailType(0i32);
1751     pub const Icon: ThumbnailType = ThumbnailType(1i32);
1752 }
1753 impl ::std::convert::From<i32> for ThumbnailType {
from(value: i32) -> Self1754     fn from(value: i32) -> Self {
1755         Self(value)
1756     }
1757 }
1758 unsafe impl ::windows::runtime::Abi for ThumbnailType {
1759     type Abi = Self;
1760     type DefaultType = Self;
1761 }
1762 unsafe impl ::windows::runtime::RuntimeType for ThumbnailType {
1763     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.FileProperties.ThumbnailType;i4)");
1764 }
1765 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
1766 #[repr(transparent)]
1767 pub struct VideoOrientation(pub i32);
1768 impl VideoOrientation {
1769     pub const Normal: VideoOrientation = VideoOrientation(0i32);
1770     pub const Rotate90: VideoOrientation = VideoOrientation(90i32);
1771     pub const Rotate180: VideoOrientation = VideoOrientation(180i32);
1772     pub const Rotate270: VideoOrientation = VideoOrientation(270i32);
1773 }
1774 impl ::std::convert::From<i32> for VideoOrientation {
from(value: i32) -> Self1775     fn from(value: i32) -> Self {
1776         Self(value)
1777     }
1778 }
1779 unsafe impl ::windows::runtime::Abi for VideoOrientation {
1780     type Abi = Self;
1781     type DefaultType = Self;
1782 }
1783 unsafe impl ::windows::runtime::RuntimeType for VideoOrientation {
1784     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Storage.FileProperties.VideoOrientation;i4)");
1785 }
1786 #[repr(transparent)]
1787 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1788 pub struct VideoProperties(::windows::runtime::IInspectable);
1789 impl VideoProperties {
Rating(&self) -> ::windows::runtime::Result<u32>1790     pub fn Rating(&self) -> ::windows::runtime::Result<u32> {
1791         let this = self;
1792         unsafe {
1793             let mut result__: u32 = ::std::mem::zeroed();
1794             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1795         }
1796     }
SetRating(&self, value: u32) -> ::windows::runtime::Result<()>1797     pub fn SetRating(&self, value: u32) -> ::windows::runtime::Result<()> {
1798         let this = self;
1799         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1800     }
1801     #[cfg(feature = "Foundation_Collections")]
Keywords(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>1802     pub fn Keywords(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
1803         let this = self;
1804         unsafe {
1805             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1806             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
1807         }
1808     }
Width(&self) -> ::windows::runtime::Result<u32>1809     pub fn Width(&self) -> ::windows::runtime::Result<u32> {
1810         let this = self;
1811         unsafe {
1812             let mut result__: u32 = ::std::mem::zeroed();
1813             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1814         }
1815     }
Height(&self) -> ::windows::runtime::Result<u32>1816     pub fn Height(&self) -> ::windows::runtime::Result<u32> {
1817         let this = self;
1818         unsafe {
1819             let mut result__: u32 = ::std::mem::zeroed();
1820             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1821         }
1822     }
1823     #[cfg(feature = "Foundation")]
Duration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan>1824     pub fn Duration(&self) -> ::windows::runtime::Result<super::super::Foundation::TimeSpan> {
1825         let this = self;
1826         unsafe {
1827             let mut result__: super::super::Foundation::TimeSpan = ::std::mem::zeroed();
1828             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::TimeSpan>(result__)
1829         }
1830     }
1831     #[cfg(feature = "Foundation")]
Latitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>1832     pub fn Latitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
1833         let this = self;
1834         unsafe {
1835             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1836             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
1837         }
1838     }
1839     #[cfg(feature = "Foundation")]
Longitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>>1840     pub fn Longitude(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<f64>> {
1841         let this = self;
1842         unsafe {
1843             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1844             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<f64>>(result__)
1845         }
1846     }
Title(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1847     pub fn Title(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1848         let this = self;
1849         unsafe {
1850             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1851             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1852         }
1853     }
SetTitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>1854     pub fn SetTitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1855         let this = self;
1856         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1857     }
Subtitle(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1858     pub fn Subtitle(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1859         let this = self;
1860         unsafe {
1861             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1862             (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1863         }
1864     }
SetSubtitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>1865     pub fn SetSubtitle<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1866         let this = self;
1867         unsafe { (::windows::runtime::Interface::vtable(this).17)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1868     }
1869     #[cfg(feature = "Foundation_Collections")]
Producers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>1870     pub fn Producers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
1871         let this = self;
1872         unsafe {
1873             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1874             (::windows::runtime::Interface::vtable(this).18)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
1875         }
1876     }
Publisher(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1877     pub fn Publisher(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1878         let this = self;
1879         unsafe {
1880             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1881             (::windows::runtime::Interface::vtable(this).19)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1882         }
1883     }
SetPublisher<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>1884     pub fn SetPublisher<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1885         let this = self;
1886         unsafe { (::windows::runtime::Interface::vtable(this).20)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1887     }
1888     #[cfg(feature = "Foundation_Collections")]
Writers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>1889     pub fn Writers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
1890         let this = self;
1891         unsafe {
1892             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1893             (::windows::runtime::Interface::vtable(this).21)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
1894         }
1895     }
Year(&self) -> ::windows::runtime::Result<u32>1896     pub fn Year(&self) -> ::windows::runtime::Result<u32> {
1897         let this = self;
1898         unsafe {
1899             let mut result__: u32 = ::std::mem::zeroed();
1900             (::windows::runtime::Interface::vtable(this).22)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1901         }
1902     }
SetYear(&self, value: u32) -> ::windows::runtime::Result<()>1903     pub fn SetYear(&self, value: u32) -> ::windows::runtime::Result<()> {
1904         let this = self;
1905         unsafe { (::windows::runtime::Interface::vtable(this).23)(::std::mem::transmute_copy(this), value).ok() }
1906     }
Bitrate(&self) -> ::windows::runtime::Result<u32>1907     pub fn Bitrate(&self) -> ::windows::runtime::Result<u32> {
1908         let this = self;
1909         unsafe {
1910             let mut result__: u32 = ::std::mem::zeroed();
1911             (::windows::runtime::Interface::vtable(this).24)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
1912         }
1913     }
1914     #[cfg(feature = "Foundation_Collections")]
Directors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>1915     pub fn Directors(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>> {
1916         let this = self;
1917         unsafe {
1918             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1919             (::windows::runtime::Interface::vtable(this).25)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<::windows::runtime::HSTRING>>(result__)
1920         }
1921     }
Orientation(&self) -> ::windows::runtime::Result<VideoOrientation>1922     pub fn Orientation(&self) -> ::windows::runtime::Result<VideoOrientation> {
1923         let this = self;
1924         unsafe {
1925             let mut result__: VideoOrientation = ::std::mem::zeroed();
1926             (::windows::runtime::Interface::vtable(this).26)(::std::mem::transmute_copy(this), &mut result__).from_abi::<VideoOrientation>(result__)
1927         }
1928     }
1929     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>1930     pub fn RetrievePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<::windows::runtime::HSTRING>>>(&self, propertiestoretrieve: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>> {
1931         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
1932         unsafe {
1933             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1934             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), propertiestoretrieve.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IMap<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>(result__)
1935         }
1936     }
1937     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>1938     pub fn SavePropertiesAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<super::super::Foundation::Collections::IKeyValuePair<::windows::runtime::HSTRING, ::windows::runtime::IInspectable>>>>(&self, propertiestosave: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
1939         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
1940         unsafe {
1941             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1942             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), propertiestosave.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
1943         }
1944     }
1945     #[cfg(feature = "Foundation")]
SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction>1946     pub fn SavePropertiesAsyncOverloadDefault(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncAction> {
1947         let this = &::windows::runtime::Interface::cast::<IStorageItemExtraProperties>(self)?;
1948         unsafe {
1949             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1950             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncAction>(result__)
1951         }
1952     }
1953 }
1954 unsafe impl ::windows::runtime::RuntimeType for VideoProperties {
1955     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Storage.FileProperties.VideoProperties;{719ae507-68de-4db8-97de-49998c059f2f})");
1956 }
1957 unsafe impl ::windows::runtime::Interface for VideoProperties {
1958     type Vtable = IVideoProperties_abi;
1959     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1905976583, 26846, 19896, [151, 222, 73, 153, 140, 5, 159, 47]);
1960 }
1961 impl ::windows::runtime::RuntimeName for VideoProperties {
1962     const NAME: &'static str = "Windows.Storage.FileProperties.VideoProperties";
1963 }
1964 impl ::std::convert::From<VideoProperties> for ::windows::runtime::IUnknown {
from(value: VideoProperties) -> Self1965     fn from(value: VideoProperties) -> Self {
1966         unsafe { ::std::mem::transmute(value) }
1967     }
1968 }
1969 impl ::std::convert::From<&VideoProperties> for ::windows::runtime::IUnknown {
from(value: &VideoProperties) -> Self1970     fn from(value: &VideoProperties) -> Self {
1971         ::std::convert::From::from(::std::clone::Clone::clone(value))
1972     }
1973 }
1974 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for VideoProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1975     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1976         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1977     }
1978 }
1979 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &VideoProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1980     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1981         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1982     }
1983 }
1984 impl ::std::convert::From<VideoProperties> for ::windows::runtime::IInspectable {
from(value: VideoProperties) -> Self1985     fn from(value: VideoProperties) -> Self {
1986         value.0
1987     }
1988 }
1989 impl ::std::convert::From<&VideoProperties> for ::windows::runtime::IInspectable {
from(value: &VideoProperties) -> Self1990     fn from(value: &VideoProperties) -> Self {
1991         value.0.clone()
1992     }
1993 }
1994 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for VideoProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1995     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1996         ::windows::runtime::Param::Owned(self.0)
1997     }
1998 }
1999 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a VideoProperties {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2000     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2001         ::windows::runtime::Param::Borrowed(&self.0)
2002     }
2003 }
2004 impl ::std::convert::TryFrom<VideoProperties> for IStorageItemExtraProperties {
2005     type Error = ::windows::runtime::Error;
try_from(value: VideoProperties) -> ::windows::runtime::Result<Self>2006     fn try_from(value: VideoProperties) -> ::windows::runtime::Result<Self> {
2007         ::std::convert::TryFrom::try_from(&value)
2008     }
2009 }
2010 impl ::std::convert::TryFrom<&VideoProperties> for IStorageItemExtraProperties {
2011     type Error = ::windows::runtime::Error;
try_from(value: &VideoProperties) -> ::windows::runtime::Result<Self>2012     fn try_from(value: &VideoProperties) -> ::windows::runtime::Result<Self> {
2013         ::windows::runtime::Interface::cast(value)
2014     }
2015 }
2016 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for VideoProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>2017     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
2018         ::windows::runtime::IntoParam::into_param(&self)
2019     }
2020 }
2021 impl<'a> ::windows::runtime::IntoParam<'a, IStorageItemExtraProperties> for &VideoProperties {
into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties>2022     fn into_param(self) -> ::windows::runtime::Param<'a, IStorageItemExtraProperties> {
2023         ::std::convert::TryInto::<IStorageItemExtraProperties>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
2024     }
2025 }
2026