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