//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0008
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.FileProperties.idl";
import "Windows.Storage.Provider.idl";
import "Windows.Storage.Search.idl";
import "Windows.Storage.Streams.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Estorage2Efileproperties_h__)")
cpp_quote("#include <Windows.Storage.FileProperties.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Efileproperties_h__)")
cpp_quote("#if !defined(__windows2Estorage2Eprovider_h__)")
cpp_quote("#include <Windows.Storage.Provider.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Eprovider_h__)")
cpp_quote("#if !defined(__windows2Estorage2Esearch_h__)")
cpp_quote("#include <Windows.Storage.Search.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Esearch_h__)")
cpp_quote("#if !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#include <Windows.Storage.Streams.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            interface IPropertySet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        interface IAsyncAction;

        interface IClosable;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace FileProperties
        {
            runtimeclass BasicProperties;

            runtimeclass StorageItemContentProperties;

            runtimeclass StorageItemThumbnail;

            typedef enum ThumbnailMode ThumbnailMode;

            typedef enum ThumbnailOptions ThumbnailOptions;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Provider
        {
            typedef enum FileUpdateStatus FileUpdateStatus;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Search
        {
            interface IStorageFolderQueryOperations;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;

            interface IInputStreamReference;

            interface IOutputStream;

            interface IRandomAccessStream;

            interface IRandomAccessStreamReference;

            typedef enum UnicodeEncoding UnicodeEncoding;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        typedef enum CreationCollisionOption CreationCollisionOption;

        typedef enum NameCollisionOption NameCollisionOption;

        typedef enum StorageDeleteOption StorageDeleteOption;

        typedef enum StorageItemTypes StorageItemTypes;

        typedef enum FileAttributes FileAttributes;

        typedef enum FileAccessMode FileAccessMode;

        typedef enum StreamedFileFailureMode StreamedFileFailureMode;

        typedef enum ApplicationDataLocality ApplicationDataLocality;

        typedef enum ApplicationDataCreateDisposition ApplicationDataCreateDisposition;

        delegate StreamedFileDataRequestedHandler;

        delegate ApplicationDataSetVersionHandler;

        interface IKnownFoldersStatics;

        interface IDownloadsFolderStatics;

        interface IStreamedFileDataRequest;

        interface IStorageFileStatics;

        interface IStorageItem;

        interface IStorageFolder;

        interface IStorageFile;

        interface IStorageFolderStatics;

        interface IStorageItemProperties;

        interface IFileIOStatics;

        interface IPathIOStatics;

        interface ICachedFileManagerStatics;

        interface IStorageStreamTransaction;

        interface IApplicationDataStatics;

        interface IApplicationData;

        interface ISetVersionRequest;

        interface ISetVersionDeferral;

        interface IApplicationDataContainer;

        runtimeclass StorageFolder;

        runtimeclass KnownFolders;

        runtimeclass StorageFile;

        runtimeclass DownloadsFolder;

        runtimeclass StreamedFileDataRequest;

        runtimeclass StorageStreamTransaction;

        runtimeclass FileIO;

        runtimeclass PathIO;

        runtimeclass CachedFileManager;

        runtimeclass ApplicationData;

        runtimeclass SetVersionRequest;

        runtimeclass ApplicationDataContainer;

        runtimeclass SetVersionDeferral;

        runtimeclass ApplicationDataContainerSettings;

        runtimeclass ApplicationDataCompositeValue;
    }
}

// Generic instantiations
namespace Windows
{
    namespace Storage
    {
        declare
        {
            interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Storage.ApplicationDataContainer*>*>;

            interface Windows.Foundation.Collections.IIterable<Windows.Storage.IStorageFile*>;

            interface Windows.Foundation.Collections.IIterable<Windows.Storage.IStorageItem*>;

            interface Windows.Foundation.Collections.IIterable<Windows.Storage.StorageFile*>;

            interface Windows.Foundation.Collections.IIterable<Windows.Storage.StorageFolder*>;

            interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Storage.ApplicationDataContainer*>*>;

            interface Windows.Foundation.Collections.IIterator<Windows.Storage.IStorageFile*>;

            interface Windows.Foundation.Collections.IIterator<Windows.Storage.IStorageItem*>;

            interface Windows.Foundation.Collections.IIterator<Windows.Storage.StorageFile*>;

            interface Windows.Foundation.Collections.IIterator<Windows.Storage.StorageFolder*>;

            interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Storage.ApplicationDataContainer*>;

            interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.ApplicationDataContainer*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder*>;

            interface Windows.Foundation.Collections.IVector<Windows.Storage.StorageFile*>;

            interface Windows.Foundation.Collections.IVector<Windows.Storage.StorageFolder*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile*>*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder*>*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Storage.IStorageItem*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Storage.StorageStreamTransaction*>;

            interface Windows.Foundation.TypedEventHandler<Windows.Storage.ApplicationData*, IInspectable*>;
        }
    }
}

// Type definition
namespace Windows
{
    namespace Storage
    {
        [version(0x06020000)]
        enum CreationCollisionOption
        {
            GenerateUniqueName = 0,
            ReplaceExisting    = 1,
            FailIfExists       = 2,
            OpenIfExists       = 3
        };

        [version(0x06020000)]
        enum NameCollisionOption
        {
            GenerateUniqueName = 0,
            ReplaceExisting    = 1,
            FailIfExists       = 2
        };

        [version(0x06020000)]
        enum StorageDeleteOption
        {
            Default         = 0,
            PermanentDelete = 1
        };

        [version(0x06020000)]
        [flags]
        enum StorageItemTypes
        {
            None   = 0x0,
            File   = 0x1,
            Folder = 0x2
        };

        [version(0x06020000)]
        [flags]
        enum FileAttributes
        {
            Normal    = 0x0,
            ReadOnly  = 0x1,
            Directory = 0x10,
            Archive   = 0x20,
            Temporary = 0x100
        };

        [version(0x06020000)]
        enum FileAccessMode
        {
            Read      = 0,
            ReadWrite = 1
        };

        [version(0x06020000)]
        enum StreamedFileFailureMode
        {
            Failed               = 0,
            CurrentlyUnavailable = 1,
            Incomplete           = 2
        };

        [version(0x06020000)]
        enum ApplicationDataLocality
        {
            Local     = 0,
            Roaming   = 1,
            Temporary = 2
        };

        [version(0x06020000)]
        enum ApplicationDataCreateDisposition
        {
            Always   = 0,
            Existing = 1
        };

        [uuid(FEF6A824-2FE1-4D07-A35B-B77C50B5F4CC)]
        [version(0x06020000)]
        delegate
            HRESULT StreamedFileDataRequestedHandler([in] Windows.Storage.StreamedFileDataRequest* stream);

        [uuid(A05791E6-CC9F-4687-ACAB-A364FD785463)]
        [version(0x06020000)]
        delegate
            HRESULT ApplicationDataSetVersionHandler([in] Windows.Storage.SetVersionRequest* setVersionRequest);

        [uuid(5A2A7520-4802-452D-9AD9-4351ADA7EC35)]
        [exclusiveto(Windows.Storage.KnownFolders)]
        [version(0x06020000)]
        interface IKnownFoldersStatics : IInspectable
        {
            [propget] HRESULT MusicLibrary([out] [retval] Windows.Storage.StorageFolder** value);
            [propget] HRESULT PicturesLibrary([out] [retval] Windows.Storage.StorageFolder** value);
            [propget] HRESULT VideosLibrary([out] [retval] Windows.Storage.StorageFolder** value);
            [propget] HRESULT DocumentsLibrary([out] [retval] Windows.Storage.StorageFolder** value);
            [propget] HRESULT HomeGroup([out] [retval] Windows.Storage.StorageFolder** value);
            [propget] HRESULT RemovableDevices([out] [retval] Windows.Storage.StorageFolder** value);
            [propget] HRESULT MediaServerDevices([out] [retval] Windows.Storage.StorageFolder** value);
        }

        [uuid(27862ED0-404E-47DF-A1E2-E37308BE7B37)]
        [version(0x06020000)]
        [exclusiveto(Windows.Storage.DownloadsFolder)]
        interface IDownloadsFolderStatics : IInspectable
        {
            [overload("CreateFileAsync")] HRESULT CreateFileAsync([in] HSTRING desiredName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            [overload("CreateFolderAsync")] HRESULT CreateFolderAsync([in] HSTRING desiredName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder*>** operation);
            [overload("CreateFileAsync")] HRESULT CreateFileWithCollisionOptionAsync([in] HSTRING desiredName, [in] Windows.Storage.CreationCollisionOption option, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            [overload("CreateFolderAsync")] HRESULT CreateFolderWithCollisionOptionAsync([in] HSTRING desiredName, [in] Windows.Storage.CreationCollisionOption option, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder*>** operation);
        }

        [uuid(1673FCCE-DABD-4D50-BEEE-180B8A8191B6)]
        [version(0x06020000)]
        interface IStreamedFileDataRequest : IInspectable
        {
            HRESULT FailAndClose([in] Windows.Storage.StreamedFileFailureMode failureMode);
        }

        [uuid(5984C710-DAF2-43C8-8BB4-A4D3EACFD03F)]
        [version(0x06020000)]
        [exclusiveto(Windows.Storage.StorageFile)]
        interface IStorageFileStatics : IInspectable
        {
            HRESULT GetFileFromPathAsync([in] HSTRING path, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            HRESULT GetFileFromApplicationUriAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            HRESULT CreateStreamedFileAsync([in] HSTRING displayNameWithExtension, [in] Windows.Storage.StreamedFileDataRequestedHandler* dataRequested, [in] Windows.Storage.Streams.IRandomAccessStreamReference* thumbnail, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            HRESULT ReplaceWithStreamedFileAsync([in] Windows.Storage.IStorageFile* fileToReplace, [in] Windows.Storage.StreamedFileDataRequestedHandler* dataRequested, [in] Windows.Storage.Streams.IRandomAccessStreamReference* thumbnail, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            HRESULT CreateStreamedFileFromUriAsync([in] HSTRING displayNameWithExtension, [in] Windows.Foundation.Uri* uri, [in] Windows.Storage.Streams.IRandomAccessStreamReference* thumbnail, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            HRESULT ReplaceWithStreamedFileFromUriAsync([in] Windows.Storage.IStorageFile* fileToReplace, [in] Windows.Foundation.Uri* uri, [in] Windows.Storage.Streams.IRandomAccessStreamReference* thumbnail, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
        }

        [uuid(4207A996-CA2F-42F7-BDE8-8B10457A7F30)]
        [version(0x06020000)]
        interface IStorageItem : IInspectable
        {
            [overload("RenameAsync")] HRESULT RenameAsyncOverloadDefaultOptions([in] HSTRING desiredName, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("RenameAsync")] HRESULT RenameAsync([in] HSTRING desiredName, [in] Windows.Storage.NameCollisionOption option, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("DeleteAsync")] HRESULT DeleteAsyncOverloadDefaultOptions([out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("DeleteAsync")] HRESULT DeleteAsync([in] Windows.Storage.StorageDeleteOption option, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            HRESULT GetBasicPropertiesAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.FileProperties.BasicProperties*>** operation);
            [propget] HRESULT Name([out] [retval] HSTRING* value);
            [propget] HRESULT Path([out] [retval] HSTRING* value);
            [propget] HRESULT Attributes([out] [retval] Windows.Storage.FileAttributes* value);
            [propget] HRESULT DateCreated([out] [retval] Windows.Foundation.DateTime* value);
            HRESULT IsOfType([in] Windows.Storage.StorageItemTypes type, [out] [retval] boolean* value);
        }

        [uuid(72D1CB78-B3EF-4F75-A80B-6FD9DAE2944B)]
        [version(0x06020000)]
        interface IStorageFolder : IInspectable
            requires
                Windows.Storage.IStorageItem
        {
            [overload("CreateFileAsync")] HRESULT CreateFileAsyncOverloadDefaultOptions([in] HSTRING desiredName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            [overload("CreateFileAsync")] HRESULT CreateFileAsync([in] HSTRING desiredName, [in] Windows.Storage.CreationCollisionOption options, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            [overload("CreateFolderAsync")] HRESULT CreateFolderAsyncOverloadDefaultOptions([in] HSTRING desiredName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder*>** operation);
            [overload("CreateFolderAsync")] HRESULT CreateFolderAsync([in] HSTRING desiredName, [in] Windows.Storage.CreationCollisionOption options, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder*>** operation);
            HRESULT GetFileAsync([in] HSTRING name, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            HRESULT GetFolderAsync([in] HSTRING name, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder*>** operation);
            HRESULT GetItemAsync([in] HSTRING name, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.IStorageItem*>** operation);
            [overload("GetFilesAsync")] HRESULT GetFilesAsyncOverloadDefaultOptionsStartAndCount([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile*>*>** operation);
            [overload("GetFoldersAsync")] HRESULT GetFoldersAsyncOverloadDefaultOptionsStartAndCount([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder*>*>** operation);
            [overload("GetItemsAsync")] HRESULT GetItemsAsyncOverloadDefaultStartAndCount([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>*>** operation);
        }

        [uuid(FA3F6186-4214-428C-A64C-14C9AC7315EA)]
        [version(0x06020000)]
        interface IStorageFile : IInspectable
            requires
                Windows.Storage.IStorageItem,
                Windows.Storage.Streams.IRandomAccessStreamReference,
                Windows.Storage.Streams.IInputStreamReference
        {
            [propget] HRESULT FileType([out] [retval] HSTRING* value);
            [propget] HRESULT ContentType([out] [retval] HSTRING* value);
            HRESULT OpenAsync([in] Windows.Storage.FileAccessMode accessMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream*>** operation);
            HRESULT OpenTransactedWriteAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageStreamTransaction*>** operation);
            [overload("CopyAsync")] HRESULT CopyOverloadDefaultNameAndOptions([in] Windows.Storage.IStorageFolder* destinationFolder, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            [overload("CopyAsync")] HRESULT CopyOverloadDefaultOptions([in] Windows.Storage.IStorageFolder* destinationFolder, [in] HSTRING desiredNewName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            [overload("CopyAsync")] HRESULT CopyOverload([in] Windows.Storage.IStorageFolder* destinationFolder, [in] HSTRING desiredNewName, [in] Windows.Storage.NameCollisionOption option, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            HRESULT CopyAndReplaceAsync([in] Windows.Storage.IStorageFile* fileToReplace, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("MoveAsync")] HRESULT MoveOverloadDefaultNameAndOptions([in] Windows.Storage.IStorageFolder* destinationFolder, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("MoveAsync")] HRESULT MoveOverloadDefaultOptions([in] Windows.Storage.IStorageFolder* destinationFolder, [in] HSTRING desiredNewName, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("MoveAsync")] HRESULT MoveOverload([in] Windows.Storage.IStorageFolder* destinationFolder, [in] HSTRING desiredNewName, [in] Windows.Storage.NameCollisionOption option, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            HRESULT MoveAndReplaceAsync([in] Windows.Storage.IStorageFile* fileToReplace, [out] [retval] Windows.Foundation.IAsyncAction** operation);
        }

        [uuid(08F327FF-85D5-48B9-AEE9-28511E339F9F)]
        [exclusiveto(Windows.Storage.StorageFolder)]
        [version(0x06020000)]
        interface IStorageFolderStatics : IInspectable
        {
            HRESULT GetFolderFromPathAsync([in] HSTRING path, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder*>** operation);
        }

        [uuid(86664478-8029-46FE-A789-1C2F3E2FFB5C)]
        [version(0x06020000)]
        interface IStorageItemProperties : IInspectable
        {
            [overload("GetThumbnailAsync")] HRESULT GetThumbnailAsyncOverloadDefaultSizeDefaultOptions([in] Windows.Storage.FileProperties.ThumbnailMode mode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.FileProperties.StorageItemThumbnail*>** operation);
            [overload("GetThumbnailAsync")] HRESULT GetThumbnailAsyncOverloadDefaultOptions([in] Windows.Storage.FileProperties.ThumbnailMode mode, [in] UINT32 requestedSize, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.FileProperties.StorageItemThumbnail*>** operation);
            [overload("GetThumbnailAsync")] HRESULT GetThumbnailAsync([in] Windows.Storage.FileProperties.ThumbnailMode mode, [in] UINT32 requestedSize, [in] Windows.Storage.FileProperties.ThumbnailOptions options, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.FileProperties.StorageItemThumbnail*>** operation);
            [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
            [propget] HRESULT DisplayType([out] [retval] HSTRING* value);
            [propget] HRESULT FolderRelativeId([out] [retval] HSTRING* value);
            [propget] HRESULT Properties([out] [retval] Windows.Storage.FileProperties.StorageItemContentProperties** value);
        }

        [uuid(887411EB-7F54-4732-A5F0-5E43E3B8C2F5)]
        [exclusiveto(Windows.Storage.FileIO)]
        [version(0x06020000)]
        interface IFileIOStatics : IInspectable
        {
            [overload("ReadTextAsync")] HRESULT ReadTextAsync([in] Windows.Storage.IStorageFile* file, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** textOperation);
            [overload("ReadTextAsync")] HRESULT ReadTextWithEncodingAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** textOperation);
            [overload("WriteTextAsync")] HRESULT WriteTextAsync([in] Windows.Storage.IStorageFile* file, [in] HSTRING contents, [out] [retval] Windows.Foundation.IAsyncAction** textOperation);
            [overload("WriteTextAsync")] HRESULT WriteTextWithEncodingAsync([in] Windows.Storage.IStorageFile* file, [in] HSTRING contents, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncAction** textOperation);
            [overload("AppendTextAsync")] HRESULT AppendTextAsync([in] Windows.Storage.IStorageFile* file, [in] HSTRING contents, [out] [retval] Windows.Foundation.IAsyncAction** textOperation);
            [overload("AppendTextAsync")] HRESULT AppendTextWithEncodingAsync([in] Windows.Storage.IStorageFile* file, [in] HSTRING contents, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncAction** textOperation);
            [overload("ReadLinesAsync")] HRESULT ReadLinesAsync([in] Windows.Storage.IStorageFile* file, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<HSTRING>*>** linesOperation);
            [overload("ReadLinesAsync")] HRESULT ReadLinesWithEncodingAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<HSTRING>*>** linesOperation);
            [overload("WriteLinesAsync")] HRESULT WriteLinesAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.Foundation.Collections.IIterable<HSTRING>* lines, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("WriteLinesAsync")] HRESULT WriteLinesWithEncodingAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.Foundation.Collections.IIterable<HSTRING>* lines, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("AppendLinesAsync")] HRESULT AppendLinesAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.Foundation.Collections.IIterable<HSTRING>* lines, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("AppendLinesAsync")] HRESULT AppendLinesWithEncodingAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.Foundation.Collections.IIterable<HSTRING>* lines, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            HRESULT ReadBufferAsync([in] Windows.Storage.IStorageFile* file, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer*>** operation);
            HRESULT WriteBufferAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.Storage.Streams.IBuffer* buffer, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            HRESULT WriteBytesAsync([in] Windows.Storage.IStorageFile* file, [in] UINT32 __bufferSize, [in] [size_is(__bufferSize)] BYTE* buffer, [out] [retval] Windows.Foundation.IAsyncAction** operation);
        }

        [uuid(0F2F3758-8EC7-4381-922B-8F6C07D288F3)]
        [exclusiveto(Windows.Storage.PathIO)]
        [version(0x06020000)]
        interface IPathIOStatics : IInspectable
        {
            [overload("ReadTextAsync")] HRESULT ReadTextAsync([in] HSTRING absolutePath, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** textOperation);
            [overload("ReadTextAsync")] HRESULT ReadTextWithEncodingAsync([in] HSTRING absolutePath, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** textOperation);
            [overload("WriteTextAsync")] HRESULT WriteTextAsync([in] HSTRING absolutePath, [in] HSTRING contents, [out] [retval] Windows.Foundation.IAsyncAction** textOperation);
            [overload("WriteTextAsync")] HRESULT WriteTextWithEncodingAsync([in] HSTRING absolutePath, [in] HSTRING contents, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncAction** textOperation);
            [overload("AppendTextAsync")] HRESULT AppendTextAsync([in] HSTRING absolutePath, [in] HSTRING contents, [out] [retval] Windows.Foundation.IAsyncAction** textOperation);
            [overload("AppendTextAsync")] HRESULT AppendTextWithEncodingAsync([in] HSTRING absolutePath, [in] HSTRING contents, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncAction** textOperation);
            [overload("ReadLinesAsync")] HRESULT ReadLinesAsync([in] HSTRING absolutePath, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<HSTRING>*>** linesOperation);
            [overload("ReadLinesAsync")] HRESULT ReadLinesWithEncodingAsync([in] HSTRING absolutePath, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<HSTRING>*>** linesOperation);
            [overload("WriteLinesAsync")] HRESULT WriteLinesAsync([in] HSTRING absolutePath, [in] Windows.Foundation.Collections.IIterable<HSTRING>* lines, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("WriteLinesAsync")] HRESULT WriteLinesWithEncodingAsync([in] HSTRING absolutePath, [in] Windows.Foundation.Collections.IIterable<HSTRING>* lines, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("AppendLinesAsync")] HRESULT AppendLinesAsync([in] HSTRING absolutePath, [in] Windows.Foundation.Collections.IIterable<HSTRING>* lines, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            [overload("AppendLinesAsync")] HRESULT AppendLinesWithEncodingAsync([in] HSTRING absolutePath, [in] Windows.Foundation.Collections.IIterable<HSTRING>* lines, [in] Windows.Storage.Streams.UnicodeEncoding encoding, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            HRESULT ReadBufferAsync([in] HSTRING absolutePath, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer*>** operation);
            HRESULT WriteBufferAsync([in] HSTRING absolutePath, [in] Windows.Storage.Streams.IBuffer* buffer, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            HRESULT WriteBytesAsync([in] HSTRING absolutePath, [in] UINT32 __bufferSize, [in] [size_is(__bufferSize)] BYTE* buffer, [out] [retval] Windows.Foundation.IAsyncAction** operation);
        }

        [uuid(8FFC224A-E782-495D-B614-654C4F0B2370)]
        [version(0x06020000)]
        [exclusiveto(Windows.Storage.CachedFileManager)]
        interface ICachedFileManagerStatics : IInspectable
        {
            HRESULT DeferUpdates([in] Windows.Storage.IStorageFile* file);
            HRESULT CompleteUpdatesAsync([in] Windows.Storage.IStorageFile* file, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Provider.FileUpdateStatus>** operation);
        }

        [uuid(F67CF363-A53D-4D94-AE2C-67232D93ACDD)]
        [exclusiveto(Windows.Storage.StorageStreamTransaction)]
        [version(0x06020000)]
        interface IStorageStreamTransaction : IInspectable
            requires
                Windows.Foundation.IClosable
        {
            [propget] HRESULT Stream([out] [retval] Windows.Storage.Streams.IRandomAccessStream** value);
            HRESULT CommitAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
        }

        [uuid(5612147B-E843-45E3-94D8-06169E3C8E17)]
        [exclusiveto(Windows.Storage.ApplicationData)]
        [version(0x06020000)]
        interface IApplicationDataStatics : IInspectable
        {
            [propget] HRESULT Current([out] [retval] Windows.Storage.ApplicationData** value);
        }

        [uuid(C3DA6FB7-B744-4B45-B0B8-223A0938D0DC)]
        [exclusiveto(Windows.Storage.ApplicationData)]
        [version(0x06020000)]
        interface IApplicationData : IInspectable
        {
            [propget] HRESULT Version([out] [retval] UINT32* value);
            HRESULT SetVersionAsync([in] UINT32 desiredVersion, [in] Windows.Storage.ApplicationDataSetVersionHandler* handler, [out] [retval] Windows.Foundation.IAsyncAction** setVersionOperation);
            [overload("ClearAsync")] HRESULT ClearAllAsync([out] [retval] Windows.Foundation.IAsyncAction** clearOperation);
            [overload("ClearAsync")] HRESULT ClearAsync([in] Windows.Storage.ApplicationDataLocality locality, [out] [retval] Windows.Foundation.IAsyncAction** clearOperation);
            [propget] HRESULT LocalSettings([out] [retval] Windows.Storage.ApplicationDataContainer** value);
            [propget] HRESULT RoamingSettings([out] [retval] Windows.Storage.ApplicationDataContainer** value);
            [propget] HRESULT LocalFolder([out] [retval] Windows.Storage.StorageFolder** value);
            [propget] HRESULT RoamingFolder([out] [retval] Windows.Storage.StorageFolder** value);
            [propget] HRESULT TemporaryFolder([out] [retval] Windows.Storage.StorageFolder** value);
            [eventadd] HRESULT DataChanged([in] Windows.Foundation.TypedEventHandler<Windows.Storage.ApplicationData*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT DataChanged([in] EventRegistrationToken token);
            HRESULT SignalDataChanged();
            [propget] HRESULT RoamingStorageQuota([out] [retval] UINT64* value);
        }

        [uuid(B9C76B9B-1056-4E69-8330-162619956F9B)]
        [version(0x06020000)]
        [exclusiveto(Windows.Storage.SetVersionRequest)]
        interface ISetVersionRequest : IInspectable
        {
            [propget] HRESULT CurrentVersion([out] [retval] UINT32* currentVersion);
            [propget] HRESULT DesiredVersion([out] [retval] UINT32* desiredVersion);
            HRESULT GetDeferral([out] [retval] Windows.Storage.SetVersionDeferral** deferral);
        }

        [uuid(033508A2-781A-437A-B078-3F32BADCFE47)]
        [exclusiveto(Windows.Storage.SetVersionDeferral)]
        [version(0x06020000)]
        interface ISetVersionDeferral : IInspectable
        {
            HRESULT Complete();
        }

        [uuid(C5AEFD1E-F467-40BA-8566-AB640A441E1D)]
        [version(0x06020000)]
        [exclusiveto(Windows.Storage.ApplicationDataContainer)]
        interface IApplicationDataContainer : IInspectable
        {
            [propget] HRESULT Name([out] [retval] HSTRING* value);
            [propget] HRESULT Locality([out] [retval] Windows.Storage.ApplicationDataLocality* value);
            [propget] HRESULT Values([out] [retval] Windows.Foundation.Collections.IPropertySet** value);
            [propget] HRESULT Containers([out] [retval] Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.ApplicationDataContainer*>** value);
            HRESULT CreateContainer([in] HSTRING name, [in] Windows.Storage.ApplicationDataCreateDisposition disposition, [out] [retval] Windows.Storage.ApplicationDataContainer** container);
            HRESULT DeleteContainer([in] HSTRING name);
        }

        [static(Windows.Storage.IStorageFolderStatics, 0x06020000)]
        [version(0x06020000)]
        runtimeclass StorageFolder
        {
            [default] interface Windows.Storage.IStorageFolder;
            interface Windows.Storage.IStorageItem;
            interface Windows.Storage.Search.IStorageFolderQueryOperations;
            interface Windows.Storage.IStorageItemProperties;
        }

        [static(Windows.Storage.IKnownFoldersStatics, 0x06020000)]
        [version(0x06020000)]
        [marshaling_behavior(agile)]
        runtimeclass KnownFolders
        {
        }

        [version(0x06020000)]
        [static(Windows.Storage.IStorageFileStatics, 0x06020000)]
        runtimeclass StorageFile
        {
            [default] interface Windows.Storage.IStorageFile;
            interface Windows.Storage.IStorageItem;
            interface Windows.Storage.Streams.IRandomAccessStreamReference;
            interface Windows.Storage.Streams.IInputStreamReference;
            interface Windows.Storage.IStorageItemProperties;
        }

        [static(Windows.Storage.IDownloadsFolderStatics, 0x06020000)]
        [version(0x06020000)]
        runtimeclass DownloadsFolder
        {
        }

        [version(0x06020000)]
        runtimeclass StreamedFileDataRequest
        {
            [default] interface Windows.Storage.Streams.IOutputStream;
            interface Windows.Foundation.IClosable;
            interface Windows.Storage.IStreamedFileDataRequest;
        }

        [version(0x06020000)]
        runtimeclass StorageStreamTransaction
        {
            [default] interface Windows.Storage.IStorageStreamTransaction;
            interface Windows.Foundation.IClosable;
        }

        [marshaling_behavior(agile)]
        [version(0x06020000)]
        [threading(both)]
        [static(Windows.Storage.IFileIOStatics, 0x06020000)]
        runtimeclass FileIO
        {
        }

        [version(0x06020000)]
        [marshaling_behavior(agile)]
        [threading(both)]
        [static(Windows.Storage.IPathIOStatics, 0x06020000)]
        runtimeclass PathIO
        {
        }

        [version(0x06020000)]
        [marshaling_behavior(agile)]
        [static(Windows.Storage.ICachedFileManagerStatics, 0x06020000)]
        runtimeclass CachedFileManager
        {
        }

        [threading(mta)]
        [version(0x06020000)]
        [static(Windows.Storage.IApplicationDataStatics, 0x06020000)]
        [marshaling_behavior(agile)]
        runtimeclass ApplicationData
        {
            [default] interface Windows.Storage.IApplicationData;
        }

        [marshaling_behavior(agile)]
        [version(0x06020000)]
        runtimeclass SetVersionRequest
        {
            [default] interface Windows.Storage.ISetVersionRequest;
        }

        [marshaling_behavior(agile)]
        [version(0x06020000)]
        runtimeclass ApplicationDataContainer
        {
            [default] interface Windows.Storage.IApplicationDataContainer;
        }

        [marshaling_behavior(agile)]
        [version(0x06020000)]
        runtimeclass SetVersionDeferral
        {
            [default] interface Windows.Storage.ISetVersionDeferral;
        }

        [version(0x06020000)]
        [marshaling_behavior(agile)]
        runtimeclass ApplicationDataContainerSettings
        {
            [default] interface Windows.Foundation.Collections.IPropertySet;
            interface Windows.Foundation.Collections.IObservableMap<HSTRING, IInspectable*>;
            interface Windows.Foundation.Collections.IMap<HSTRING, IInspectable*>;
            interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, IInspectable*>*>;
        }

        [marshaling_behavior(agile)]
        [version(0x06020000)]
        [threading(mta)]
        [activatable(0x06020000)]
        runtimeclass ApplicationDataCompositeValue
        {
            [default] interface Windows.Foundation.Collections.IPropertySet;
            interface Windows.Foundation.Collections.IObservableMap<HSTRING, IInspectable*>;
            interface Windows.Foundation.Collections.IMap<HSTRING, IInspectable*>;
            interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, IInspectable*>*>;
        }
    }
}
