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