1 /*
2 * SPDX-FileCopyrightText: This file has no copyright assigned and is placed in the Public Domain.
3 * SPDX-License-Identifier: CC0-1.0
4 *
5 * This file is part of the w64 mingw-runtime package.
6 * No warranty is given; refer to https://github.com/kinke/mingw-w64-crt/blob/master/DISCLAIMER.PD.
7 */
8
9 struct DateTime;
10
11 typedef struct DateTime {
12 UINT64 UniversalTime;
13 } DateTime;
14
15 /* The following is copied verbatim from MinGW-w64 windows.storage.h */
16 enum StorageItemTypes;
17 enum FileAttributes;
18 enum NameCollisionOption;
19 enum StorageDeleteOption;
20
21 typedef enum NameCollisionoption {
22 NameCollisionoption_GenerateUniqueName = 0,
23 NameCollisionoption_ReplaceExisting = 1,
24 NameCollisionoption_FailIfExists = 2
25 } NameCollisionOption;
26
27 typedef enum FileAttributes {
28 FileAttributes_Normal = 0,
29 FileAttributes_ReadOnly = 1,
30 FileAttributes_Directory = 2,
31 FileAttributes_Archive = 3,
32 FileAttributes_Temporary = 4
33 } FileAttributes;
34
35 typedef enum StorageItemTypes {
36 StorageItemTypes_None = 0,
37 StorageItemTypes_File = 1,
38 StorageItemTypes_Folder = 2
39 } StorageItemTypes;
40
41 typedef enum StorageDeleteOption {
42 StorageDeleteOption_Default = 0,
43 StorageDeleteOption_PermanentDelete = 1
44 } StorageDeleteOption;
45
46 #ifndef __IStorageItem_FWD_DEFINED__
47 #define __IStorageItem_FWD_DEFINED__
48 typedef interface IStorageItem IStorageItem;
49 #endif
50
51 /*
52 * IStorageItem interface
53 */
54 #ifndef __IStorageItem_INTERFACE_DEFINED__
55 #define __IStorageItem_INTERFACE_DEFINED__
56
57 DEFINE_GUID(IID_IStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30);
58 #if defined(__cplusplus) && !defined(CINTERFACE)
59 MIDL_INTERFACE("4207a996-ca2f-42f7-bde8-8b10457a7f30")
60 IStorageItem : public IInspectable
61 {
62 virtual HRESULT STDMETHODCALLTYPE RenameAsyncOverloadDefaultOptions(
63 HSTRING desiredName,
64 IInspectable **action) = 0;
65
66 virtual HRESULT STDMETHODCALLTYPE RenameAsync(
67 HSTRING desiredName,
68 NameCollisionOption option,
69 IInspectable **action) = 0;
70
71 virtual HRESULT STDMETHODCALLTYPE DeleteAsyncOverloadDefaultOptions(
72 IInspectable **action) = 0;
73
74 virtual HRESULT STDMETHODCALLTYPE DeleteAsync(
75 StorageDeleteOption option,
76 IInspectable **action) = 0;
77
78 virtual HRESULT STDMETHODCALLTYPE GetBasicPropertiesAsync(
79 IInspectable **action) = 0;
80
81 virtual HRESULT STDMETHODCALLTYPE get_Name(
82 HSTRING *value) = 0;
83
84 virtual HRESULT STDMETHODCALLTYPE get_Path(
85 HSTRING *value) = 0;
86
87 virtual HRESULT STDMETHODCALLTYPE get_Attributes(
88 FileAttributes *value) = 0;
89
90 virtual HRESULT STDMETHODCALLTYPE get_DateCreated(
91 DateTime *value) = 0;
92
93 virtual HRESULT STDMETHODCALLTYPE IsOfType(
94 StorageItemTypes itemType,
95 boolean *value) = 0;
96
97 };
98 #ifdef __CRT_UUID_DECL
99 __CRT_UUID_DECL(IStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30)
100 #endif
101 #else
102 typedef struct IStorageItemVtbl {
103 BEGIN_INTERFACE
104
105 /*** IUnknown methods ***/
106 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
107 IStorageItem* This,
108 REFIID riid,
109 void **ppvObject);
110
111 ULONG (STDMETHODCALLTYPE *AddRef)(
112 IStorageItem* This);
113
114 ULONG (STDMETHODCALLTYPE *Release)(
115 IStorageItem* This);
116
117 /*** IInspectable methods ***/
118 HRESULT (STDMETHODCALLTYPE *GetIids)(
119 IStorageItem* This,
120 ULONG *iidCount,
121 IID **iids);
122
123 HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
124 IStorageItem* This,
125 HSTRING *className);
126
127 HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
128 IStorageItem* This,
129 TrustLevel *trustLevel);
130
131 /*** IStorageItem methods ***/
132 HRESULT (STDMETHODCALLTYPE *RenameAsyncOverloadDefaultOptions)(
133 IStorageItem* This,
134 HSTRING desiredName,
135 IInspectable **action);
136
137 HRESULT (STDMETHODCALLTYPE *RenameAsync)(
138 IStorageItem* This,
139 HSTRING desiredName,
140 NameCollisionOption option,
141 IInspectable **action);
142
143 HRESULT (STDMETHODCALLTYPE *DeleteAsyncOverloadDefaultOptions)(
144 IStorageItem* This,
145 IInspectable **action);
146
147 HRESULT (STDMETHODCALLTYPE *DeleteAsync)(
148 IStorageItem* This,
149 StorageDeleteOption option,
150 IInspectable **action);
151
152 HRESULT (STDMETHODCALLTYPE *GetBasicPropertiesAsync)(
153 IStorageItem* This,
154 IInspectable **action);
155
156 HRESULT (STDMETHODCALLTYPE *get_Name)(
157 IStorageItem* This,
158 HSTRING *value);
159
160 HRESULT (STDMETHODCALLTYPE *get_Path)(
161 IStorageItem* This,
162 HSTRING *value);
163
164 HRESULT (STDMETHODCALLTYPE *get_Attributes)(
165 IStorageItem* This,
166 FileAttributes *value);
167
168 HRESULT (STDMETHODCALLTYPE *get_DateCreated)(
169 IStorageItem* This,
170 DateTime *value);
171
172 HRESULT (STDMETHODCALLTYPE *IsOfType)(
173 IStorageItem* This,
174 StorageItemTypes itemType,
175 boolean *value);
176
177 END_INTERFACE
178 } IStorageItemVtbl;
179 interface IStorageItem {
180 CONST_VTBL IStorageItemVtbl* lpVtbl;
181 };
182
183 #ifdef COBJMACROS
184 #ifndef WIDL_C_INLINE_WRAPPERS
185 /*** IUnknown methods ***/
186 #define IStorageItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
187 #define IStorageItem_AddRef(This) (This)->lpVtbl->AddRef(This)
188 #define IStorageItem_Release(This) (This)->lpVtbl->Release(This)
189 /*** IInspectable methods ***/
190 #define IStorageItem_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
191 #define IStorageItem_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
192 #define IStorageItem_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
193 /*** IStorageItem methods ***/
194 #define IStorageItem_RenameAsyncOverloadDefaultOptions(This,desiredName,action) (This)->lpVtbl->RenameAsyncOverloadDefaultOptions(This,desiredName,action)
195 #define IStorageItem_RenameAsync(This,desiredName,option,action) (This)->lpVtbl->RenameAsync(This,desiredName,option,action)
196 #define IStorageItem_DeleteAsyncOverloadDefaultOptions(This,action) (This)->lpVtbl->DeleteAsyncOverloadDefaultOptions(This,action)
197 #define IStorageItem_DeleteAsync(This,option,action) (This)->lpVtbl->DeleteAsync(This,option,action)
198 #define IStorageItem_GetBasicPropertiesAsync(This,action) (This)->lpVtbl->GetBasicPropertiesAsync(This,action)
199 #define IStorageItem_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
200 #define IStorageItem_get_Path(This,value) (This)->lpVtbl->get_Path(This,value)
201 #define IStorageItem_get_Attributes(This,value) (This)->lpVtbl->get_Attributes(This,value)
202 #define IStorageItem_get_DateCreated(This,value) (This)->lpVtbl->get_DateCreated(This,value)
203 #define IStorageItem_IsOfType(This,itemType,value) (This)->lpVtbl->IsOfType(This,itemType,value)
204 #else
205 /*** IUnknown methods ***/
206 static FORCEINLINE HRESULT IStorageItem_QueryInterface(IStorageItem* This,REFIID riid,void **ppvObject) {
207 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
208 }
209 static FORCEINLINE ULONG IStorageItem_AddRef(IStorageItem* This) {
210 return This->lpVtbl->AddRef(This);
211 }
212 static FORCEINLINE ULONG IStorageItem_Release(IStorageItem* This) {
213 return This->lpVtbl->Release(This);
214 }
215 /*** IInspectable methods ***/
216 static FORCEINLINE HRESULT IStorageItem_GetIids(IStorageItem* This,ULONG *iidCount,IID **iids) {
217 return This->lpVtbl->GetIids(This,iidCount,iids);
218 }
219 static FORCEINLINE HRESULT IStorageItem_GetRuntimeClassName(IStorageItem* This,HSTRING *className) {
220 return This->lpVtbl->GetRuntimeClassName(This,className);
221 }
222 static FORCEINLINE HRESULT IStorageItem_GetTrustLevel(IStorageItem* This,TrustLevel *trustLevel) {
223 return This->lpVtbl->GetTrustLevel(This,trustLevel);
224 }
225 /*** IStorageItem methods ***/
226 static FORCEINLINE HRESULT IStorageItem_RenameAsyncOverloadDefaultOptions(IStorageItem* This,HSTRING desiredName,IInspectable **action) {
227 return This->lpVtbl->RenameAsyncOverloadDefaultOptions(This,desiredName,action);
228 }
229 static FORCEINLINE HRESULT IStorageItem_RenameAsync(IStorageItem* This,HSTRING desiredName,NameCollisionOption option,IInspectable **action) {
230 return This->lpVtbl->RenameAsync(This,desiredName,option,action);
231 }
232 static FORCEINLINE HRESULT IStorageItem_DeleteAsyncOverloadDefaultOptions(IStorageItem* This,IInspectable **action) {
233 return This->lpVtbl->DeleteAsyncOverloadDefaultOptions(This,action);
234 }
235 static FORCEINLINE HRESULT IStorageItem_DeleteAsync(IStorageItem* This,StorageDeleteOption option,IInspectable **action) {
236 return This->lpVtbl->DeleteAsync(This,option,action);
237 }
238 static FORCEINLINE HRESULT IStorageItem_GetBasicPropertiesAsync(IStorageItem* This,IInspectable **action) {
239 return This->lpVtbl->GetBasicPropertiesAsync(This,action);
240 }
241 static FORCEINLINE HRESULT IStorageItem_get_Name(IStorageItem* This,HSTRING *value) {
242 return This->lpVtbl->get_Name(This,value);
243 }
244 static FORCEINLINE HRESULT IStorageItem_get_Path(IStorageItem* This,HSTRING *value) {
245 return This->lpVtbl->get_Path(This,value);
246 }
247 static FORCEINLINE HRESULT IStorageItem_get_Attributes(IStorageItem* This,FileAttributes *value) {
248 return This->lpVtbl->get_Attributes(This,value);
249 }
250 static FORCEINLINE HRESULT IStorageItem_get_DateCreated(IStorageItem* This,DateTime *value) {
251 return This->lpVtbl->get_DateCreated(This,value);
252 }
253 static FORCEINLINE HRESULT IStorageItem_IsOfType(IStorageItem* This,StorageItemTypes itemType,boolean *value) {
254 return This->lpVtbl->IsOfType(This,itemType,value);
255 }
256 #endif
257 #endif
258
259 #endif
260
261 HRESULT STDMETHODCALLTYPE IStorageItem_RenameAsyncOverloadDefaultOptions_Proxy(
262 IStorageItem* This,
263 HSTRING desiredName,
264 IInspectable **action);
265 void __RPC_STUB IStorageItem_RenameAsyncOverloadDefaultOptions_Stub(
266 IRpcStubBuffer* This,
267 IRpcChannelBuffer* pRpcChannelBuffer,
268 PRPC_MESSAGE pRpcMessage,
269 DWORD* pdwStubPhase);
270 HRESULT STDMETHODCALLTYPE IStorageItem_RenameAsync_Proxy(
271 IStorageItem* This,
272 HSTRING desiredName,
273 NameCollisionOption option,
274 IInspectable **action);
275 void __RPC_STUB IStorageItem_RenameAsync_Stub(
276 IRpcStubBuffer* This,
277 IRpcChannelBuffer* pRpcChannelBuffer,
278 PRPC_MESSAGE pRpcMessage,
279 DWORD* pdwStubPhase);
280 HRESULT STDMETHODCALLTYPE IStorageItem_DeleteAsyncOverloadDefaultOptions_Proxy(
281 IStorageItem* This,
282 IInspectable **action);
283 void __RPC_STUB IStorageItem_DeleteAsyncOverloadDefaultOptions_Stub(
284 IRpcStubBuffer* This,
285 IRpcChannelBuffer* pRpcChannelBuffer,
286 PRPC_MESSAGE pRpcMessage,
287 DWORD* pdwStubPhase);
288 HRESULT STDMETHODCALLTYPE IStorageItem_DeleteAsync_Proxy(
289 IStorageItem* This,
290 StorageDeleteOption option,
291 IInspectable **action);
292 void __RPC_STUB IStorageItem_DeleteAsync_Stub(
293 IRpcStubBuffer* This,
294 IRpcChannelBuffer* pRpcChannelBuffer,
295 PRPC_MESSAGE pRpcMessage,
296 DWORD* pdwStubPhase);
297 HRESULT STDMETHODCALLTYPE IStorageItem_GetBasicPropertiesAsync_Proxy(
298 IStorageItem* This,
299 IInspectable **action);
300 void __RPC_STUB IStorageItem_GetBasicPropertiesAsync_Stub(
301 IRpcStubBuffer* This,
302 IRpcChannelBuffer* pRpcChannelBuffer,
303 PRPC_MESSAGE pRpcMessage,
304 DWORD* pdwStubPhase);
305 HRESULT STDMETHODCALLTYPE IStorageItem_get_Name_Proxy(
306 IStorageItem* This,
307 HSTRING *value);
308 void __RPC_STUB IStorageItem_get_Name_Stub(
309 IRpcStubBuffer* This,
310 IRpcChannelBuffer* pRpcChannelBuffer,
311 PRPC_MESSAGE pRpcMessage,
312 DWORD* pdwStubPhase);
313 HRESULT STDMETHODCALLTYPE IStorageItem_get_Path_Proxy(
314 IStorageItem* This,
315 HSTRING *value);
316 void __RPC_STUB IStorageItem_get_Path_Stub(
317 IRpcStubBuffer* This,
318 IRpcChannelBuffer* pRpcChannelBuffer,
319 PRPC_MESSAGE pRpcMessage,
320 DWORD* pdwStubPhase);
321 HRESULT STDMETHODCALLTYPE IStorageItem_get_Attributes_Proxy(
322 IStorageItem* This,
323 FileAttributes *value);
324 void __RPC_STUB IStorageItem_get_Attributes_Stub(
325 IRpcStubBuffer* This,
326 IRpcChannelBuffer* pRpcChannelBuffer,
327 PRPC_MESSAGE pRpcMessage,
328 DWORD* pdwStubPhase);
329 HRESULT STDMETHODCALLTYPE IStorageItem_get_DateCreated_Proxy(
330 IStorageItem* This,
331 DateTime *value);
332 void __RPC_STUB IStorageItem_get_DateCreated_Stub(
333 IRpcStubBuffer* This,
334 IRpcChannelBuffer* pRpcChannelBuffer,
335 PRPC_MESSAGE pRpcMessage,
336 DWORD* pdwStubPhase);
337 HRESULT STDMETHODCALLTYPE IStorageItem_IsOfType_Proxy(
338 IStorageItem* This,
339 StorageItemTypes itemType,
340 boolean *value);
341 void __RPC_STUB IStorageItem_IsOfType_Stub(
342 IRpcStubBuffer* This,
343 IRpcChannelBuffer* pRpcChannelBuffer,
344 PRPC_MESSAGE pRpcMessage,
345 DWORD* pdwStubPhase);
346
347 #endif /* __IStorageItem_INTERFACE_DEFINED__ */