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