The IStorageFile interface is described at [1].
The IStorageFileStatics is the interface to use to access the static methods
of StorageFile [2], to use by creating an instance of 
"Windows.Storage.StorageFile"
with RoGetActivationFactory().

[1] https://docs.microsoft.com/en-us/uwp/api/windows.storage.istoragefile
[2] https://docs.microsoft.com/en-us/uwp/api/windows.storage.storagefile
---
 mingw-w64-headers/include/windows.storage.h   | 532 ++++++++++++++++++
 mingw-w64-headers/include/windows.storage.idl |  37 ++
 2 files changed, 569 insertions(+)

diff --git a/mingw-w64-headers/include/windows.storage.h 
b/mingw-w64-headers/include/windows.storage.h
index df7db329..f5917b79 100644
--- a/mingw-w64-headers/include/windows.storage.h
+++ b/mingw-w64-headers/include/windows.storage.h
@@ -46,6 +46,34 @@ namespace ABI {
 #endif /* __cplusplus */
 #endif
 
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageFileStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageFileStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIStorageFileStatics 
__x_ABI_CWindows_CStorage_CIStorageFileStatics;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IStorageFileStatics;
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageFile_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageFile_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIStorageFile 
__x_ABI_CWindows_CStorage_CIStorageFile;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IStorageFile;
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
 #ifndef ____x_ABI_CWindows_CStorage_CIStorageFolder_FWD_DEFINED__
 #define ____x_ABI_CWindows_CStorage_CIStorageFolder_FWD_DEFINED__
 typedef interface __x_ABI_CWindows_CStorage_CIStorageFolder 
__x_ABI_CWindows_CStorage_CIStorageFolder;
@@ -340,6 +368,48 @@ namespace ABI {
 #endif /* __cplusplus */
 #endif
 
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageFile_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageFile_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIStorageFile 
__x_ABI_CWindows_CStorage_CIStorageFile;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IStorageFile;
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageFileStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageFileStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIStorageFileStatics 
__x_ABI_CWindows_CStorage_CIStorageFileStatics;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IStorageFileStatics;
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef 
____x_ABI_CWindows_CStorage_CStreamedFileDataRequestedHandler_FWD_DEFINED__
+#define 
____x_ABI_CWindows_CStorage_CStreamedFileDataRequestedHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreamedFileDataRequestedHandler 
__x_ABI_CWindows_CStorage_CStreamedFileDataRequestedHandler;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface StreamedFileDataRequestedHandler;
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
 typedef enum NameCollisionoption {
     NameCollisionoption_GenerateUniqueName = 0,
     NameCollisionoption_ReplaceExisting = 1,
@@ -376,6 +446,10 @@ typedef enum CreationCollisionOption {
     CreationCollisionOption_FailIfExists = 2,
     CreationCollisionOption_OpenIfExists = 3
 } CreationCollisionOption;
+typedef enum FileAccessMode {
+    FileAccessMode_Read = 0,
+    FileAccessMode_ReadWrite = 1
+} FileAccessMode;
 /*****************************************************************************
  * IStorageItem interface
  */
@@ -775,6 +849,464 @@ static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_M
 
 #endif  /* 
____x_ABI_CWindows_CStorage_CIKnownFoldersStatics_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IStorageFileStatics interface
+ */
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageFileStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageFileStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIStorageFileStatics, 0x5984c710, 
0xdaf2, 0x43c8, 0x8b,0xb4, 0xa4,0xd3,0xea,0xcf,0xd0,0x3f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("5984c710-daf2-43c8-8bb4-a4d3eacfd03f")
+            IStorageFileStatics : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE GetFileFromPathAsync(
+                    HSTRING path,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE 
GetFileFromApplicationUriAsync(
+                    IInspectable *uri,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE CreateStreamedFileAsync(
+                    HSTRING displayNameWithExtension,
+                    StreamedFileDataRequestedHandler *dataRequested,
+                    IInspectable *thumbnail,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE ReplaceWithStreamedFileAsync(
+                    IStorageFile *fileToReplace,
+                    StreamedFileDataRequestedHandler *dataRequested,
+                    IInspectable *thumbnail,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE 
CreateStreamedFileFromUriAsync(
+                    HSTRING displayNameWithExtension,
+                    IInspectable *uri,
+                    IInspectable *thumbnail,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE 
ReplaceWithStreamedFileFromUriAsync(
+                    IStorageFile *fileToReplace,
+                    IInspectable *uri,
+                    IInspectable *thumbnail,
+                    IInspectable **operation) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::Storage::IStorageFileStatics, 0x5984c710, 
0xdaf2, 0x43c8, 0x8b,0xb4, 0xa4,0xd3,0xea,0xcf,0xd0,0x3f)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CStorage_CIStorageFileStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IStorageFileStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetFileFromPathAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        HSTRING path,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *GetFileFromApplicationUriAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        IInspectable *uri,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *CreateStreamedFileAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        HSTRING displayNameWithExtension,
+        __x_ABI_CWindows_CStorage_CStreamedFileDataRequestedHandler 
*dataRequested,
+        IInspectable *thumbnail,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *ReplaceWithStreamedFileAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        __x_ABI_CWindows_CStorage_CIStorageFile *fileToReplace,
+        __x_ABI_CWindows_CStorage_CStreamedFileDataRequestedHandler 
*dataRequested,
+        IInspectable *thumbnail,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *CreateStreamedFileFromUriAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        HSTRING displayNameWithExtension,
+        IInspectable *uri,
+        IInspectable *thumbnail,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *ReplaceWithStreamedFileFromUriAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFileStatics *This,
+        __x_ABI_CWindows_CStorage_CIStorageFile *fileToReplace,
+        IInspectable *uri,
+        IInspectable *thumbnail,
+        IInspectable **operation);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CStorage_CIStorageFileStaticsVtbl;
+
+interface __x_ABI_CWindows_CStorage_CIStorageFileStatics {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIStorageFileStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_QueryInterface(This,riid,ppvObject)
 (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIStorageFileStatics_AddRef(This) 
(This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIStorageFileStatics_Release(This) 
(This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetIids(This,iidCount,iids) 
(This)->lpVtbl->GetIids(This,iidCount,iids)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetRuntimeClassName(This,className)
 (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetTrustLevel(This,trustLevel) 
(This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IStorageFileStatics methods ***/
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetFileFromPathAsync(This,path,operation)
 (This)->lpVtbl->GetFileFromPathAsync(This,path,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetFileFromApplicationUriAsync(This,uri,operation)
 (This)->lpVtbl->GetFileFromApplicationUriAsync(This,uri,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_CreateStreamedFileAsync(This,displayNameWithExtension,dataRequested,thumbnail,operation)
 
(This)->lpVtbl->CreateStreamedFileAsync(This,displayNameWithExtension,dataRequested,thumbnail,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_ReplaceWithStreamedFileAsync(This,fileToReplace,dataRequested,thumbnail,operation)
 
(This)->lpVtbl->ReplaceWithStreamedFileAsync(This,fileToReplace,dataRequested,thumbnail,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_CreateStreamedFileFromUriAsync(This,displayNameWithExtension,uri,thumbnail,operation)
 
(This)->lpVtbl->CreateStreamedFileFromUriAsync(This,displayNameWithExtension,uri,thumbnail,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_ReplaceWithStreamedFileFromUriAsync(This,fileToReplace,uri,thumbnail,operation)
 
(This)->lpVtbl->ReplaceWithStreamedFileFromUriAsync(This,fileToReplace,uri,thumbnail,operation)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_QueryInterface(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_AddRef(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_Release(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetIids(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetTrustLevel(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IStorageFileStatics methods ***/
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetFileFromPathAsync(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,HSTRING path,IInspectable **operation) {
+    return This->lpVtbl->GetFileFromPathAsync(This,path,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_GetFileFromApplicationUriAsync(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,IInspectable *uri,IInspectable **operation) {
+    return This->lpVtbl->GetFileFromApplicationUriAsync(This,uri,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_CreateStreamedFileAsync(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,HSTRING 
displayNameWithExtension,__x_ABI_CWindows_CStorage_CStreamedFileDataRequestedHandler
 *dataRequested,IInspectable *thumbnail,IInspectable **operation) {
+    return 
This->lpVtbl->CreateStreamedFileAsync(This,displayNameWithExtension,dataRequested,thumbnail,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_ReplaceWithStreamedFileAsync(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,__x_ABI_CWindows_CStorage_CIStorageFile 
*fileToReplace,__x_ABI_CWindows_CStorage_CStreamedFileDataRequestedHandler 
*dataRequested,IInspectable *thumbnail,IInspectable **operation) {
+    return 
This->lpVtbl->ReplaceWithStreamedFileAsync(This,fileToReplace,dataRequested,thumbnail,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_CreateStreamedFileFromUriAsync(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,HSTRING displayNameWithExtension,IInspectable *uri,IInspectable 
*thumbnail,IInspectable **operation) {
+    return 
This->lpVtbl->CreateStreamedFileFromUriAsync(This,displayNameWithExtension,uri,thumbnail,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFileStatics_ReplaceWithStreamedFileFromUriAsync(__x_ABI_CWindows_CStorage_CIStorageFileStatics*
 This,__x_ABI_CWindows_CStorage_CIStorageFile *fileToReplace,IInspectable 
*uri,IInspectable *thumbnail,IInspectable **operation) {
+    return 
This->lpVtbl->ReplaceWithStreamedFileFromUriAsync(This,fileToReplace,uri,thumbnail,operation);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* 
____x_ABI_CWindows_CStorage_CIStorageFileStatics_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IStorageFile interface
+ */
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageFile_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageFile_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIStorageFile, 0xfa3f6186, 0x4214, 
0x428c, 0xa6,0x4c, 0x14,0xc9,0xac,0x73,0x15,0xea);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("fa3f6186-4214-428c-a64c-14c9ac7315ea")
+            IStorageFile : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE get_FileType(
+                    HSTRING *value) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE get_ContentType(
+                    HSTRING *value) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE OpenAsync(
+                    FileAccessMode accessMode,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE OpenTransactedWriteAsync(
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE 
CopyOverloadDefaultNameAndOptions(
+                    IStorageFolder *destinationFolder,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE CopyOverloadDefaultOptions(
+                    IStorageFolder *destinationFolder,
+                    HSTRING desiredNewName,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE CopyOverload(
+                    IStorageFolder *destinationFolder,
+                    HSTRING desiredNewName,
+                    NameCollisionOption option,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE CopyAndReplaceAsync(
+                    IStorageFile *fileToReplace,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE 
MoveOverloadDefaultNameAndOptions(
+                    IStorageFolder *destinationFolder,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE MoveOverloadDefaultOptions(
+                    IStorageFolder *destinationFolder,
+                    HSTRING desiredNewName,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE MoveOverload(
+                    IStorageFolder *destinationFolder,
+                    HSTRING desiredNewName,
+                    NameCollisionOption option,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE MoveAndReplaceAsync(
+                    IStorageFile *fileToReplace,
+                    IInspectable **operation) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::Storage::IStorageFile, 0xfa3f6186, 0x4214, 
0x428c, 0xa6,0x4c, 0x14,0xc9,0xac,0x73,0x15,0xea)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CStorage_CIStorageFileVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        TrustLevel *trustLevel);
+
+    /*** IStorageFile methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_FileType)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ContentType)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *OpenAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        FileAccessMode accessMode,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *OpenTransactedWriteAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *CopyOverloadDefaultNameAndOptions)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *CopyOverloadDefaultOptions)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,
+        HSTRING desiredNewName,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *CopyOverload)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,
+        HSTRING desiredNewName,
+        NameCollisionOption option,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *CopyAndReplaceAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        __x_ABI_CWindows_CStorage_CIStorageFile *fileToReplace,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *MoveOverloadDefaultNameAndOptions)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *MoveOverloadDefaultOptions)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,
+        HSTRING desiredNewName,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *MoveOverload)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,
+        HSTRING desiredNewName,
+        NameCollisionOption option,
+        IInspectable **operation);
+
+    HRESULT (STDMETHODCALLTYPE *MoveAndReplaceAsync)(
+        __x_ABI_CWindows_CStorage_CIStorageFile *This,
+        __x_ABI_CWindows_CStorage_CIStorageFile *fileToReplace,
+        IInspectable **operation);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CStorage_CIStorageFileVtbl;
+
+interface __x_ABI_CWindows_CStorage_CIStorageFile {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIStorageFileVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIStorageFile_AddRef(This) 
(This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIStorageFile_Release(This) 
(This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CStorage_CIStorageFile_GetIids(This,iidCount,iids) 
(This)->lpVtbl->GetIids(This,iidCount,iids)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_GetRuntimeClassName(This,className) 
(This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CIStorageFile_GetTrustLevel(This,trustLevel) 
(This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IStorageFile methods ***/
+#define __x_ABI_CWindows_CStorage_CIStorageFile_get_FileType(This,value) 
(This)->lpVtbl->get_FileType(This,value)
+#define __x_ABI_CWindows_CStorage_CIStorageFile_get_ContentType(This,value) 
(This)->lpVtbl->get_ContentType(This,value)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_OpenAsync(This,accessMode,operation) 
(This)->lpVtbl->OpenAsync(This,accessMode,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_OpenTransactedWriteAsync(This,operation)
 (This)->lpVtbl->OpenTransactedWriteAsync(This,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_CopyOverloadDefaultNameAndOptions(This,destinationFolder,operation)
 
(This)->lpVtbl->CopyOverloadDefaultNameAndOptions(This,destinationFolder,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_CopyOverloadDefaultOptions(This,destinationFolder,desiredNewName,operation)
 
(This)->lpVtbl->CopyOverloadDefaultOptions(This,destinationFolder,desiredNewName,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_CopyOverload(This,destinationFolder,desiredNewName,option,operation)
 
(This)->lpVtbl->CopyOverload(This,destinationFolder,desiredNewName,option,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_CopyAndReplaceAsync(This,fileToReplace,operation)
 (This)->lpVtbl->CopyAndReplaceAsync(This,fileToReplace,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_MoveOverloadDefaultNameAndOptions(This,destinationFolder,operation)
 
(This)->lpVtbl->MoveOverloadDefaultNameAndOptions(This,destinationFolder,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_MoveOverloadDefaultOptions(This,destinationFolder,desiredNewName,operation)
 
(This)->lpVtbl->MoveOverloadDefaultOptions(This,destinationFolder,desiredNewName,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_MoveOverload(This,destinationFolder,desiredNewName,option,operation)
 
(This)->lpVtbl->MoveOverload(This,destinationFolder,desiredNewName,option,operation)
+#define 
__x_ABI_CWindows_CStorage_CIStorageFile_MoveAndReplaceAsync(This,fileToReplace,operation)
 (This)->lpVtbl->MoveAndReplaceAsync(This,fileToReplace,operation)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_QueryInterface(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG 
__x_ABI_CWindows_CStorage_CIStorageFile_AddRef(__x_ABI_CWindows_CStorage_CIStorageFile*
 This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG 
__x_ABI_CWindows_CStorage_CIStorageFile_Release(__x_ABI_CWindows_CStorage_CIStorageFile*
 This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_GetIids(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_GetTrustLevel(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IStorageFile methods ***/
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_get_FileType(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,HSTRING *value) {
+    return This->lpVtbl->get_FileType(This,value);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_get_ContentType(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,HSTRING *value) {
+    return This->lpVtbl->get_ContentType(This,value);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_OpenAsync(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,FileAccessMode accessMode,IInspectable **operation) {
+    return This->lpVtbl->OpenAsync(This,accessMode,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_OpenTransactedWriteAsync(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,IInspectable **operation) {
+    return This->lpVtbl->OpenTransactedWriteAsync(This,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_CopyOverloadDefaultNameAndOptions(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,__x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,IInspectable 
**operation) {
+    return 
This->lpVtbl->CopyOverloadDefaultNameAndOptions(This,destinationFolder,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_CopyOverloadDefaultOptions(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,__x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,HSTRING 
desiredNewName,IInspectable **operation) {
+    return 
This->lpVtbl->CopyOverloadDefaultOptions(This,destinationFolder,desiredNewName,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_CopyOverload(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,__x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,HSTRING 
desiredNewName,NameCollisionOption option,IInspectable **operation) {
+    return 
This->lpVtbl->CopyOverload(This,destinationFolder,desiredNewName,option,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_CopyAndReplaceAsync(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,__x_ABI_CWindows_CStorage_CIStorageFile *fileToReplace,IInspectable 
**operation) {
+    return This->lpVtbl->CopyAndReplaceAsync(This,fileToReplace,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_MoveOverloadDefaultNameAndOptions(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,__x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,IInspectable 
**operation) {
+    return 
This->lpVtbl->MoveOverloadDefaultNameAndOptions(This,destinationFolder,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_MoveOverloadDefaultOptions(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,__x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,HSTRING 
desiredNewName,IInspectable **operation) {
+    return 
This->lpVtbl->MoveOverloadDefaultOptions(This,destinationFolder,desiredNewName,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_MoveOverload(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,__x_ABI_CWindows_CStorage_CIStorageFolder *destinationFolder,HSTRING 
desiredNewName,NameCollisionOption option,IInspectable **operation) {
+    return 
This->lpVtbl->MoveOverload(This,destinationFolder,desiredNewName,option,operation);
+}
+static FORCEINLINE HRESULT 
__x_ABI_CWindows_CStorage_CIStorageFile_MoveAndReplaceAsync(__x_ABI_CWindows_CStorage_CIStorageFile*
 This,__x_ABI_CWindows_CStorage_CIStorageFile *fileToReplace,IInspectable 
**operation) {
+    return This->lpVtbl->MoveAndReplaceAsync(This,fileToReplace,operation);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CStorage_CIStorageFile_INTERFACE_DEFINED__ */
+
 /*****************************************************************************
  * IStorageFolder interface
  */
diff --git a/mingw-w64-headers/include/windows.storage.idl 
b/mingw-w64-headers/include/windows.storage.idl
index 281c69b5..15e74084 100644
--- a/mingw-w64-headers/include/windows.storage.idl
+++ b/mingw-w64-headers/include/windows.storage.idl
@@ -33,6 +33,9 @@ namespace Windows {
     // delegate  ApplicationDataSetVersionHandler;
     interface ISetVersionRequest;
     interface ISetVersionDeferral;
+    interface IStorageFile;
+    interface IStorageFileStatics;
+    interface StreamedFileDataRequestedHandler; // delegate
   }
 }
 
@@ -81,6 +84,11 @@ namespace Windows {
       OpenIfExists
     } CreationCollisionOption;
 
+    typedef enum FileAccessMode {
+      Read,
+      ReadWrite
+    } FileAccessMode;
+
     [uuid(4207A996-CA2F-42F7-BDE8-8B10457A7F30)]
     interface IStorageItem : IInspectable
     {
@@ -108,6 +116,35 @@ namespace Windows {
         [propget] HRESULT MediaServerDevices(IStorageFolder** value);
     }
 
+    [uuid(5984C710-DAF2-43C8-8BB4-A4D3EACFD03F)]
+    interface IStorageFileStatics : IInspectable
+    {
+        HRESULT GetFileFromPathAsync(HSTRING path, /* 
IAsyncOperation<StorageFile> ** */ IInspectable** operation);
+        HRESULT GetFileFromApplicationUriAsync(/* Uri* */ IInspectable* uri, 
/* IAsyncOperation<StorageFile> ** */ IInspectable** operation);
+        HRESULT CreateStreamedFileAsync(HSTRING displayNameWithExtension, 
StreamedFileDataRequestedHandler* dataRequested, 
/*IRandomAccessStreamReference* */ IInspectable* thumbnail, /* 
IAsyncOperation<StorageFile> ** */ IInspectable** operation);
+        HRESULT ReplaceWithStreamedFileAsync(IStorageFile* fileToReplace, 
StreamedFileDataRequestedHandler* dataRequested, 
/*IRandomAccessStreamReference* */ IInspectable* thumbnail, /* 
IAsyncOperation<StorageFile> ** */ IInspectable** operation);
+        HRESULT CreateStreamedFileFromUriAsync(HSTRING 
displayNameWithExtension, /* Uri* */ IInspectable* uri, 
/*IRandomAccessStreamReference* */ IInspectable* thumbnail, /* 
IAsyncOperation<StorageFile> ** */ IInspectable** operation);
+        HRESULT ReplaceWithStreamedFileFromUriAsync(IStorageFile* 
fileToReplace, /* Uri* */ IInspectable* uri, /*IRandomAccessStreamReference* */ 
IInspectable* thumbnail, /* IAsyncOperation<StorageFile> ** */ IInspectable** 
operation);
+    }
+
+    [uuid(FA3F6186-4214-428C-A64C-14C9AC7315EA)]
+    interface IStorageFile : IInspectable
+    // also IStorageItem, IInputStreamReference, IRandomAccessStreamReference
+    {
+        [propget] HRESULT FileType(HSTRING *value);
+        [propget] HRESULT ContentType(HSTRING *value);
+        HRESULT OpenAsync(FileAccessMode accessMode, 
/*IAsyncOperation<IRandomAccessStream*>*/IInspectable** operation);
+        HRESULT 
OpenTransactedWriteAsync(/*IAsyncOperation<StorageStreamTransaction*>*/IInspectable**
 operation);
+        HRESULT CopyOverloadDefaultNameAndOptions(IStorageFolder 
*destinationFolder, /* IAsyncOperation<StorageFile> ** */ IInspectable** 
operation);
+        HRESULT CopyOverloadDefaultOptions(IStorageFolder *destinationFolder, 
HSTRING desiredNewName, /* IAsyncOperation<StorageFile> ** */ IInspectable** 
operation);
+        HRESULT CopyOverload(IStorageFolder *destinationFolder, HSTRING 
desiredNewName, NameCollisionOption option, /* IAsyncOperation<StorageFile> ** 
*/ IInspectable** operation);
+        HRESULT CopyAndReplaceAsync(IStorageFile *fileToReplace, /* 
IAsyncAction** */ IInspectable** operation);
+        HRESULT MoveOverloadDefaultNameAndOptions(IStorageFolder 
*destinationFolder, /* IAsyncAction** */ IInspectable** operation);
+        HRESULT MoveOverloadDefaultOptions(IStorageFolder *destinationFolder, 
HSTRING desiredNewName, /* IAsyncAction** */ IInspectable** operation);
+        HRESULT MoveOverload(IStorageFolder *destinationFolder, HSTRING 
desiredNewName, NameCollisionOption option, /* IAsyncAction** */ IInspectable** 
operation);
+        HRESULT MoveAndReplaceAsync(IStorageFile *fileToReplace, /* 
IAsyncAction** */ IInspectable** operation);
+    }
+
     [uuid(72D1CB78-B3EF-4F75-A80B-6FD9DAE2944B)]
     interface IStorageFolder : IInspectable
     {
-- 
2.29.2



_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to