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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.idl";
import "Windows.Storage.Streams.idl";
import "Windows.UI.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageFile;

        interface IStorageFolder;

        interface IStorageItem;

        runtimeclass StorageFile;

        runtimeclass StorageFolder;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Provider
        {
            apicontract CloudFilesContract;

            typedef enum CachedFileOptions CachedFileOptions;

            typedef enum CachedFileTarget CachedFileTarget;

            typedef enum FileUpdateStatus FileUpdateStatus;

            typedef enum ReadActivationMode ReadActivationMode;

            typedef enum StorageProviderHardlinkPolicy StorageProviderHardlinkPolicy;

            typedef enum StorageProviderHydrationPolicy StorageProviderHydrationPolicy;

            typedef enum StorageProviderHydrationPolicyModifier StorageProviderHydrationPolicyModifier;

            typedef enum StorageProviderInSyncPolicy StorageProviderInSyncPolicy;

            typedef enum StorageProviderKnownFolderSyncStatus StorageProviderKnownFolderSyncStatus;

            typedef enum StorageProviderPopulationPolicy StorageProviderPopulationPolicy;

            typedef enum StorageProviderProtectionMode StorageProviderProtectionMode;

            typedef enum StorageProviderShareLinkState StorageProviderShareLinkState;

            typedef enum StorageProviderState StorageProviderState;

            typedef enum StorageProviderUICommandState StorageProviderUICommandState;

            typedef enum StorageProviderUriSourceStatus StorageProviderUriSourceStatus;

            typedef enum UIStatus UIStatus;

            typedef enum WriteActivationMode WriteActivationMode;

            delegate StorageProviderKnownFolderSyncRequestedHandler;

            interface ICachedFileUpdaterStatics;

            interface ICachedFileUpdaterUI;

            interface ICachedFileUpdaterUI2;

            interface IFileUpdateRequest;

            interface IFileUpdateRequest2;

            interface IFileUpdateRequestDeferral;

            interface IFileUpdateRequestedEventArgs;

            interface IStorageProviderFileTypeInfo;

            interface IStorageProviderFileTypeInfoFactory;

            interface IStorageProviderGetContentInfoForPathResult;

            interface IStorageProviderGetPathForContentUriResult;

            interface IStorageProviderItemPropertiesStatics;

            interface IStorageProviderItemProperty;

            interface IStorageProviderItemPropertyDefinition;

            interface IStorageProviderItemPropertySource;

            interface IStorageProviderKnownFolderEntry;

            interface IStorageProviderKnownFolderSyncInfo;

            interface IStorageProviderKnownFolderSyncInfoSource;

            interface IStorageProviderKnownFolderSyncInfoSourceFactory;

            interface IStorageProviderKnownFolderSyncRequestArgs;

            interface IStorageProviderMoreInfoUI;

            interface IStorageProviderPropertyCapabilities;

            interface IStorageProviderQuotaUI;

            interface IStorageProviderShareLinkSource;

            interface IStorageProviderStatusUI;

            interface IStorageProviderStatusUISource;

            interface IStorageProviderStatusUISourceFactory;

            interface IStorageProviderSyncRootInfo;

            interface IStorageProviderSyncRootInfo2;

            interface IStorageProviderSyncRootInfo3;

            interface IStorageProviderSyncRootManagerStatics;

            interface IStorageProviderSyncRootManagerStatics2;

            interface IStorageProviderUICommand;

            interface IStorageProviderUriSource;

            runtimeclass CachedFileUpdater;

            runtimeclass CachedFileUpdaterUI;

            runtimeclass FileUpdateRequest;

            runtimeclass FileUpdateRequestDeferral;

            runtimeclass FileUpdateRequestedEventArgs;

            runtimeclass StorageProviderFileTypeInfo;

            runtimeclass StorageProviderGetContentInfoForPathResult;

            runtimeclass StorageProviderGetPathForContentUriResult;

            runtimeclass StorageProviderItemProperties;

            runtimeclass StorageProviderItemProperty;

            runtimeclass StorageProviderItemPropertyDefinition;

            runtimeclass StorageProviderKnownFolderEntry;

            runtimeclass StorageProviderKnownFolderSyncInfo;

            runtimeclass StorageProviderKnownFolderSyncRequestArgs;

            runtimeclass StorageProviderMoreInfoUI;

            runtimeclass StorageProviderQuotaUI;

            runtimeclass StorageProviderStatusUI;

            runtimeclass StorageProviderSyncRootInfo;

            runtimeclass StorageProviderSyncRootManager;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Storage
    {
        namespace Provider
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Storage.Provider.IStorageProviderUICommand*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Storage.Provider.StorageProviderFileTypeInfo*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Storage.Provider.StorageProviderItemProperty*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Storage.Provider.StorageProviderItemPropertyDefinition*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Storage.Provider.StorageProviderKnownFolderEntry*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Storage.Provider.StorageProviderSyncRootInfo*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Storage.Provider.IStorageProviderUICommand*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Storage.Provider.StorageProviderFileTypeInfo*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Storage.Provider.StorageProviderItemProperty*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Storage.Provider.StorageProviderItemPropertyDefinition*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Storage.Provider.StorageProviderKnownFolderEntry*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Storage.Provider.StorageProviderSyncRootInfo*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Provider.IStorageProviderUICommand*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Provider.StorageProviderFileTypeInfo*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Provider.StorageProviderItemPropertyDefinition*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Provider.StorageProviderKnownFolderEntry*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Provider.StorageProviderSyncRootInfo*>;

                interface Windows.Foundation.Collections.IVector<Windows.Storage.Provider.IStorageProviderUICommand*>;

                interface Windows.Foundation.Collections.IVector<Windows.Storage.Provider.StorageProviderFileTypeInfo*>;

                interface Windows.Foundation.Collections.IVector<Windows.Storage.Provider.StorageProviderItemPropertyDefinition*>;

                interface Windows.Foundation.Collections.IVector<Windows.Storage.Provider.StorageProviderKnownFolderEntry*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Storage.Provider.FileUpdateStatus>;

                interface Windows.Foundation.IAsyncOperation<Windows.Storage.Provider.StorageProviderShareLinkState>;

                interface Windows.Foundation.TypedEventHandler<Windows.Storage.Provider.CachedFileUpdaterUI*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Storage.Provider.CachedFileUpdaterUI*, Windows.Storage.Provider.FileUpdateRequestedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Storage.Provider.IStorageProviderKnownFolderSyncInfoSource*, IInspectable*>;

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

// Type definition
namespace Windows
{
    namespace Storage
    {
        namespace Provider
        {
            [contractversion(7.0)]
            apicontract CloudFilesContract
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [flags]
            enum CachedFileOptions
            {
                None                     = 0x0,
                RequireUpdateOnAccess    = 0x1,
                UseCachedFileWhenOffline = 0x2,
                DenyAccessWhenOffline    = 0x4
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum CachedFileTarget
            {
                Local  = 0,
                Remote = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum FileUpdateStatus
            {
                Incomplete           = 0,
                Complete             = 1,
                UserInputNeeded      = 2,
                CurrentlyUnavailable = 3,
                Failed               = 4,
                CompleteAndRenamed   = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum ReadActivationMode
            {
                NotNeeded    = 0,
                BeforeAccess = 1
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [flags]
            enum StorageProviderHardlinkPolicy
            {
                None    = 0x0,
                Allowed = 0x1
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            enum StorageProviderHydrationPolicy
            {
                Partial     = 0,
                Progressive = 1,
                Full        = 2,
                AlwaysFull  = 3
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [flags]
            enum StorageProviderHydrationPolicyModifier
            {
                None                      = 0x0,
                ValidationRequired        = 0x1,
                StreamingAllowed          = 0x2,
                [contract(Windows.Storage.Provider.CloudFilesContract, 3.0)]
                AutoDehydrationAllowed    = 0x4,
                [contract(Windows.Storage.Provider.CloudFilesContract, 6.0)]
                AllowFullRestartHydration = 0x8
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [flags]
            enum StorageProviderInSyncPolicy
            {
                Default                     = 0x0,
                FileCreationTime            = 0x1,
                FileReadOnlyAttribute       = 0x2,
                FileHiddenAttribute         = 0x4,
                FileSystemAttribute         = 0x8,
                DirectoryCreationTime       = 0x10,
                DirectoryReadOnlyAttribute  = 0x20,
                DirectoryHiddenAttribute    = 0x40,
                DirectorySystemAttribute    = 0x80,
                FileLastWriteTime           = 0x100,
                DirectoryLastWriteTime      = 0x200,
                PreserveInsyncForSyncEngine = 0x80000000
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            enum StorageProviderKnownFolderSyncStatus
            {
                Available = 0,
                Enrolling = 1,
                Enrolled  = 2
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            enum StorageProviderPopulationPolicy
            {
                Full       = 1,
                AlwaysFull = 2
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            enum StorageProviderProtectionMode
            {
                Unknown  = 0,
                Personal = 1
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [experimental]
            enum StorageProviderShareLinkState
            {
                Enabled  = 0,
                Disabled = 1
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 5.0)]
            enum StorageProviderState
            {
                InSync  = 0,
                Syncing = 1,
                Paused  = 2,
                Error   = 3,
                Warning = 4,
                Offline = 5
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            enum StorageProviderUICommandState
            {
                Enabled  = 0,
                Disabled = 1,
                Hidden   = 2
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 2.0)]
            enum StorageProviderUriSourceStatus
            {
                Success      = 0,
                NoSyncRoot   = 1,
                FileNotFound = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum UIStatus
            {
                Unavailable = 0,
                Hidden      = 1,
                Visible     = 2,
                Complete    = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum WriteActivationMode
            {
                ReadOnly   = 0,
                NotNeeded  = 1,
                AfterWrite = 2
            };

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [uuid(C4CBB4F5-13DD-5C8E-8B96-336FC30C629B)]
            delegate
                HRESULT StorageProviderKnownFolderSyncRequestedHandler([in] Windows.Storage.Provider.StorageProviderKnownFolderSyncRequestArgs* args);

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.CachedFileUpdater)]
            [uuid(9FC90920-7BCF-4888-A81E-102D7034D7CE)]
            interface ICachedFileUpdaterStatics : IInspectable
            {
                HRESULT SetUpdateInformation([in] Windows.Storage.IStorageFile* file, [in] HSTRING contentId, [in] Windows.Storage.Provider.ReadActivationMode readMode, [in] Windows.Storage.Provider.WriteActivationMode writeMode, [in] Windows.Storage.Provider.CachedFileOptions options);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.CachedFileUpdaterUI)]
            [uuid(9E6F41E6-BAF2-4A97-B600-9333F5DF80FD)]
            interface ICachedFileUpdaterUI : IInspectable
            {
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propput] HRESULT Title([in] HSTRING value);
                [propget] HRESULT UpdateTarget([out] [retval] Windows.Storage.Provider.CachedFileTarget* value);
                [eventadd] HRESULT FileUpdateRequested([in] Windows.Foundation.TypedEventHandler<Windows.Storage.Provider.CachedFileUpdaterUI*, Windows.Storage.Provider.FileUpdateRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT FileUpdateRequested([in] EventRegistrationToken token);
                [eventadd] HRESULT UIRequested([in] Windows.Foundation.TypedEventHandler<Windows.Storage.Provider.CachedFileUpdaterUI*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT UIRequested([in] EventRegistrationToken token);
                [propget] HRESULT UIStatus([out] [retval] Windows.Storage.Provider.UIStatus* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.CachedFileUpdaterUI)]
            [uuid(8856A21C-8699-4340-9F49-F7CAD7FE8991)]
            interface ICachedFileUpdaterUI2 : IInspectable
                requires
                    Windows.Storage.Provider.ICachedFileUpdaterUI
            {
                [propget] HRESULT UpdateRequest([out] [retval] Windows.Storage.Provider.FileUpdateRequest** value);
                HRESULT GetDeferral([out] [retval] Windows.Storage.Provider.FileUpdateRequestDeferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.FileUpdateRequest)]
            [uuid(40C82536-C1FE-4D93-A792-1E736BC70837)]
            interface IFileUpdateRequest : IInspectable
            {
                [propget] HRESULT ContentId([out] [retval] HSTRING* value);
                [propget] HRESULT File([out] [retval] Windows.Storage.StorageFile** value);
                [propget] HRESULT Status([out] [retval] Windows.Storage.Provider.FileUpdateStatus* value);
                [propput] HRESULT Status([in] Windows.Storage.Provider.FileUpdateStatus value);
                HRESULT GetDeferral([out] [retval] Windows.Storage.Provider.FileUpdateRequestDeferral** value);
                HRESULT UpdateLocalFile([in] Windows.Storage.IStorageFile* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.FileUpdateRequest)]
            [uuid(82484648-BDBE-447B-A2EE-7AFE6A032A94)]
            interface IFileUpdateRequest2 : IInspectable
                requires
                    Windows.Storage.Provider.IFileUpdateRequest
            {
                [propget] HRESULT UserInputNeededMessage([out] [retval] HSTRING* value);
                [propput] HRESULT UserInputNeededMessage([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.FileUpdateRequestDeferral)]
            [uuid(FFCEDB2B-8ADE-44A5-BB00-164C4E72F13A)]
            interface IFileUpdateRequestDeferral : IInspectable
            {
                HRESULT Complete();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.FileUpdateRequestedEventArgs)]
            [uuid(7B0A9342-3905-438D-AAEF-78AE265F8DD2)]
            interface IFileUpdateRequestedEventArgs : IInspectable
            {
                [propget] HRESULT Request([out] [retval] Windows.Storage.Provider.FileUpdateRequest** value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 4.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderFileTypeInfo)]
            [uuid(1955B9C1-0184-5A88-87DF-4544F464365D)]
            interface IStorageProviderFileTypeInfo : IInspectable
            {
                [propget] HRESULT FileExtension([out] [retval] HSTRING* value);
                [propget] HRESULT IconResource([out] [retval] HSTRING* value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 4.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderFileTypeInfo)]
            [uuid(3FA12C6F-CCE6-5D5D-80B1-389E7CF92DBF)]
            interface IStorageProviderFileTypeInfoFactory : IInspectable
            {
                HRESULT CreateInstance([in] HSTRING fileExtension, [in] HSTRING iconResource, [out] [retval] Windows.Storage.Provider.StorageProviderFileTypeInfo** value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 2.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderGetContentInfoForPathResult)]
            [uuid(2564711D-AA89-4D12-82E3-F72A92E33966)]
            interface IStorageProviderGetContentInfoForPathResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Storage.Provider.StorageProviderUriSourceStatus* value);
                [propput] HRESULT Status([in] Windows.Storage.Provider.StorageProviderUriSourceStatus value);
                [propget] HRESULT ContentUri([out] [retval] HSTRING* value);
                [propput] HRESULT ContentUri([in] HSTRING value);
                [propget] HRESULT ContentId([out] [retval] HSTRING* value);
                [propput] HRESULT ContentId([in] HSTRING value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 2.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderGetPathForContentUriResult)]
            [uuid(63711A9D-4118-45A6-ACB6-22C49D019F40)]
            interface IStorageProviderGetPathForContentUriResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Storage.Provider.StorageProviderUriSourceStatus* value);
                [propput] HRESULT Status([in] Windows.Storage.Provider.StorageProviderUriSourceStatus value);
                [propget] HRESULT Path([out] [retval] HSTRING* value);
                [propput] HRESULT Path([in] HSTRING value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderItemProperties)]
            [uuid(2D2C1C97-2704-4729-8FA9-7E6B8E158C2F)]
            interface IStorageProviderItemPropertiesStatics : IInspectable
            {
                HRESULT SetAsync([in] Windows.Storage.IStorageItem* item, [in] Windows.Foundation.Collections.IIterable<Windows.Storage.Provider.StorageProviderItemProperty*>* itemProperties, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderItemProperty)]
            [uuid(476CB558-730B-4188-B7B5-63B716ED476D)]
            interface IStorageProviderItemProperty : IInspectable
            {
                [propput] HRESULT Id([in] INT32 value);
                [propget] HRESULT Id([out] [retval] INT32* value);
                [propput] HRESULT Value([in] HSTRING value);
                [propget] HRESULT Value([out] [retval] HSTRING* value);
                [propput] HRESULT IconResource([in] HSTRING value);
                [propget] HRESULT IconResource([out] [retval] HSTRING* value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderItemPropertyDefinition)]
            [uuid(C5B383BB-FF1F-4298-831E-FF1C08089690)]
            interface IStorageProviderItemPropertyDefinition : IInspectable
            {
                [propget] HRESULT Id([out] [retval] INT32* value);
                [propput] HRESULT Id([in] INT32 value);
                [propget] HRESULT DisplayNameResource([out] [retval] HSTRING* value);
                [propput] HRESULT DisplayNameResource([in] HSTRING value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [uuid(8F6F9C3E-F632-4A9B-8D99-D2D7A11DF56A)]
            interface IStorageProviderItemPropertySource : IInspectable
            {
                HRESULT GetItemProperties([in] HSTRING itemPath, [out] [retval] Windows.Foundation.Collections.IIterable<Windows.Storage.Provider.StorageProviderItemProperty*>** result);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderKnownFolderEntry)]
            [uuid(EFFA7DB0-1D44-596B-8464-928800C5E2D8)]
            interface IStorageProviderKnownFolderEntry : IInspectable
            {
                [propget] HRESULT KnownFolderId([out] [retval] GUID* value);
                [propput] HRESULT KnownFolderId([in] GUID value);
                [propget] HRESULT Status([out] [retval] Windows.Storage.Provider.StorageProviderKnownFolderSyncStatus* value);
                [propput] HRESULT Status([in] Windows.Storage.Provider.StorageProviderKnownFolderSyncStatus value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderKnownFolderSyncInfo)]
            [uuid(98B017CE-FFC1-5B11-AE77-CC17AFEC1049)]
            interface IStorageProviderKnownFolderSyncInfo : IInspectable
            {
                [propget] HRESULT ProviderDisplayName([out] [retval] HSTRING* value);
                [propput] HRESULT ProviderDisplayName([in] HSTRING value);
                [propget] HRESULT KnownFolderEntries([out] [retval] Windows.Foundation.Collections.IVector<Windows.Storage.Provider.StorageProviderKnownFolderEntry*>** value);
                [propget] HRESULT SyncRequested([out] [retval] Windows.Storage.Provider.StorageProviderKnownFolderSyncRequestedHandler** value);
                [propput] HRESULT SyncRequested([in] Windows.Storage.Provider.StorageProviderKnownFolderSyncRequestedHandler* value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [uuid(51359342-F7C0-53D0-BBB6-1CDC098EBDA9)]
            interface IStorageProviderKnownFolderSyncInfoSource : IInspectable
            {
                HRESULT GetKnownFolderSyncInfo([out] [retval] Windows.Storage.Provider.StorageProviderKnownFolderSyncInfo** result);
                [eventadd] HRESULT KnownFolderSyncInfoChanged([in] Windows.Foundation.TypedEventHandler<Windows.Storage.Provider.IStorageProviderKnownFolderSyncInfoSource*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT KnownFolderSyncInfoChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [uuid(AAEE03A7-A7F6-50BE-A9B0-8E82D0C81082)]
            interface IStorageProviderKnownFolderSyncInfoSourceFactory : IInspectable
            {
                HRESULT GetKnownFolderSyncInfoSource([out] [retval] Windows.Storage.Provider.IStorageProviderKnownFolderSyncInfoSource** result);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderKnownFolderSyncRequestArgs)]
            [uuid(EDA6D569-B4E8-542F-AB8D-F3613F250A4A)]
            interface IStorageProviderKnownFolderSyncRequestArgs : IInspectable
            {
                [propget] HRESULT KnownFolders([out] [retval] Windows.Foundation.Collections.IVectorView<GUID>** value);
                [propget] HRESULT Source([out] [retval] Windows.Storage.StorageFolder** value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderMoreInfoUI)]
            [uuid(EF38E591-A7CB-5E7D-9B5E-22749842697C)]
            interface IStorageProviderMoreInfoUI : IInspectable
            {
                [propget] HRESULT Message([out] [retval] HSTRING* value);
                [propput] HRESULT Message([in] HSTRING value);
                [propget] HRESULT Command([out] [retval] Windows.Storage.Provider.IStorageProviderUICommand** value);
                [propput] HRESULT Command([in] Windows.Storage.Provider.IStorageProviderUICommand* value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [uuid(658D2F0E-63B7-4567-ACF9-51ABE301DDA5)]
            interface IStorageProviderPropertyCapabilities : IInspectable
            {
                HRESULT IsPropertySupported([in] HSTRING propertyCanonicalName, [out] [retval] boolean* isSupported);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderQuotaUI)]
            [uuid(BA6295C3-312E-544F-9FD5-1F81B21F3649)]
            interface IStorageProviderQuotaUI : IInspectable
            {
                [propget] HRESULT QuotaTotalInBytes([out] [retval] UINT64* value);
                [propput] HRESULT QuotaTotalInBytes([in] UINT64 value);
                [propget] HRESULT QuotaUsedInBytes([out] [retval] UINT64* value);
                [propput] HRESULT QuotaUsedInBytes([in] UINT64 value);
                [propget] HRESULT QuotaUsedLabel([out] [retval] HSTRING* value);
                [propput] HRESULT QuotaUsedLabel([in] HSTRING value);
                [propget] HRESULT QuotaUsedColor([out] [retval] Windows.Foundation.IReference<Windows.UI.Color>** value);
                [propput] HRESULT QuotaUsedColor([in] Windows.Foundation.IReference<Windows.UI.Color>* value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [experimental]
            [uuid(4C6055E2-029C-5539-8E51-A1AFC838B5CB)]
            interface IStorageProviderShareLinkSource : IInspectable
            {
                HRESULT CreateLinkAsync([in] Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>* storageItemList, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Uri*>** operation);
                HRESULT GetDefaultAccessControlStringAsync([in] Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>* storageItemList, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                HRESULT GetState([in] Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>* storageItemList, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Provider.StorageProviderShareLinkState>** operation);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderStatusUI)]
            [uuid(D6B6A758-198D-5B80-977F-5FF73DA33118)]
            interface IStorageProviderStatusUI : IInspectable
            {
                [propget] HRESULT ProviderState([out] [retval] Windows.Storage.Provider.StorageProviderState* value);
                [propput] HRESULT ProviderState([in] Windows.Storage.Provider.StorageProviderState value);
                [propget] HRESULT ProviderStateLabel([out] [retval] HSTRING* value);
                [propput] HRESULT ProviderStateLabel([in] HSTRING value);
                [propget] HRESULT ProviderStateIcon([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT ProviderStateIcon([in] Windows.Foundation.Uri* value);
                [propget] HRESULT SyncStatusCommand([out] [retval] Windows.Storage.Provider.IStorageProviderUICommand** value);
                [propput] HRESULT SyncStatusCommand([in] Windows.Storage.Provider.IStorageProviderUICommand* value);
                [propget] HRESULT QuotaUI([out] [retval] Windows.Storage.Provider.StorageProviderQuotaUI** value);
                [propput] HRESULT QuotaUI([in] Windows.Storage.Provider.StorageProviderQuotaUI* value);
                [propget] HRESULT MoreInfoUI([out] [retval] Windows.Storage.Provider.StorageProviderMoreInfoUI** value);
                [propput] HRESULT MoreInfoUI([in] Windows.Storage.Provider.StorageProviderMoreInfoUI* value);
                [propget] HRESULT ProviderPrimaryCommand([out] [retval] Windows.Storage.Provider.IStorageProviderUICommand** value);
                [propput] HRESULT ProviderPrimaryCommand([in] Windows.Storage.Provider.IStorageProviderUICommand* value);
                [propget] HRESULT ProviderSecondaryCommands([out] [retval] Windows.Foundation.Collections.IVector<Windows.Storage.Provider.IStorageProviderUICommand*>** value);
                [propput] HRESULT ProviderSecondaryCommands([in] Windows.Foundation.Collections.IVector<Windows.Storage.Provider.IStorageProviderUICommand*>* value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [uuid(A306C249-3D66-5E70-9007-E43DF96051FF)]
            interface IStorageProviderStatusUISource : IInspectable
            {
                HRESULT GetStatusUI([out] [retval] Windows.Storage.Provider.StorageProviderStatusUI** result);
                [eventadd] HRESULT StatusUIChanged([in] Windows.Foundation.TypedEventHandler<Windows.Storage.Provider.IStorageProviderStatusUISource*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT StatusUIChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [uuid(12E46B74-4E5A-58D1-A62F-0376E8EE7DD8)]
            interface IStorageProviderStatusUISourceFactory : IInspectable
            {
                HRESULT GetStatusUISource([in] HSTRING syncRootId, [out] [retval] Windows.Storage.Provider.IStorageProviderStatusUISource** result);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderSyncRootInfo)]
            [uuid(7C1305C4-99F9-41AC-8904-AB055D654926)]
            interface IStorageProviderSyncRootInfo : IInspectable
            {
                [propget] HRESULT Id([out] [retval] HSTRING* value);
                [propput] HRESULT Id([in] HSTRING value);
                [propget] HRESULT Context([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propput] HRESULT Context([in] Windows.Storage.Streams.IBuffer* value);
                [propget] HRESULT Path([out] [retval] Windows.Storage.IStorageFolder** value);
                [propput] HRESULT Path([in] Windows.Storage.IStorageFolder* value);
                [propget] HRESULT DisplayNameResource([out] [retval] HSTRING* value);
                [propput] HRESULT DisplayNameResource([in] HSTRING value);
                [propget] HRESULT IconResource([out] [retval] HSTRING* value);
                [propput] HRESULT IconResource([in] HSTRING value);
                [propget] HRESULT HydrationPolicy([out] [retval] Windows.Storage.Provider.StorageProviderHydrationPolicy* value);
                [propput] HRESULT HydrationPolicy([in] Windows.Storage.Provider.StorageProviderHydrationPolicy value);
                [propget] HRESULT HydrationPolicyModifier([out] [retval] Windows.Storage.Provider.StorageProviderHydrationPolicyModifier* value);
                [propput] HRESULT HydrationPolicyModifier([in] Windows.Storage.Provider.StorageProviderHydrationPolicyModifier value);
                [propget] HRESULT PopulationPolicy([out] [retval] Windows.Storage.Provider.StorageProviderPopulationPolicy* value);
                [propput] HRESULT PopulationPolicy([in] Windows.Storage.Provider.StorageProviderPopulationPolicy value);
                [propget] HRESULT InSyncPolicy([out] [retval] Windows.Storage.Provider.StorageProviderInSyncPolicy* value);
                [propput] HRESULT InSyncPolicy([in] Windows.Storage.Provider.StorageProviderInSyncPolicy value);
                [propget] HRESULT HardlinkPolicy([out] [retval] Windows.Storage.Provider.StorageProviderHardlinkPolicy* value);
                [propput] HRESULT HardlinkPolicy([in] Windows.Storage.Provider.StorageProviderHardlinkPolicy value);
                [propget] HRESULT ShowSiblingsAsGroup([out] [retval] boolean* value);
                [propput] HRESULT ShowSiblingsAsGroup([in] boolean value);
                [propget] HRESULT Version([out] [retval] HSTRING* value);
                [propput] HRESULT Version([in] HSTRING value);
                [propget] HRESULT ProtectionMode([out] [retval] Windows.Storage.Provider.StorageProviderProtectionMode* value);
                [propput] HRESULT ProtectionMode([in] Windows.Storage.Provider.StorageProviderProtectionMode value);
                [propget] HRESULT AllowPinning([out] [retval] boolean* value);
                [propput] HRESULT AllowPinning([in] boolean value);
                [propget] HRESULT StorageProviderItemPropertyDefinitions([out] [retval] Windows.Foundation.Collections.IVector<Windows.Storage.Provider.StorageProviderItemPropertyDefinition*>** value);
                [propget] HRESULT RecycleBinUri([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT RecycleBinUri([in] Windows.Foundation.Uri* value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 3.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderSyncRootInfo)]
            [uuid(CF51B023-7CF1-5166-BDBA-EFD95F529E31)]
            interface IStorageProviderSyncRootInfo2 : IInspectable
            {
                [propget] HRESULT ProviderId([out] [retval] GUID* value);
                [propput] HRESULT ProviderId([in] GUID value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 4.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderSyncRootInfo)]
            [uuid(507A6617-BEF6-56FD-855E-75ACE2E45CF5)]
            interface IStorageProviderSyncRootInfo3 : IInspectable
            {
                [propget] HRESULT FallbackFileTypeInfo([out] [retval] Windows.Foundation.Collections.IVector<Windows.Storage.Provider.StorageProviderFileTypeInfo*>** value);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderSyncRootManager)]
            [uuid(3E99FBBF-8FE3-4B40-ABC7-F6FC3D74C98E)]
            interface IStorageProviderSyncRootManagerStatics : IInspectable
            {
                HRESULT Register([in] Windows.Storage.Provider.StorageProviderSyncRootInfo* syncRootInformation);
                HRESULT Unregister([in] HSTRING id);
                HRESULT GetSyncRootInformationForFolder([in] Windows.Storage.IStorageFolder* folder, [out] [retval] Windows.Storage.Provider.StorageProviderSyncRootInfo** result);
                HRESULT GetSyncRootInformationForId([in] HSTRING id, [out] [retval] Windows.Storage.Provider.StorageProviderSyncRootInfo** result);
                HRESULT GetCurrentSyncRoots([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Storage.Provider.StorageProviderSyncRootInfo*>** result);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 4.0)]
            [exclusiveto(Windows.Storage.Provider.StorageProviderSyncRootManager)]
            [uuid(EFB6CFEE-1374-544E-9DF1-5598D2E9CFDD)]
            interface IStorageProviderSyncRootManagerStatics2 : IInspectable
            {
                HRESULT IsSupported([out] [retval] boolean* result);
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [uuid(0C3E0760-D846-568F-9484-105CC57B502B)]
            interface IStorageProviderUICommand : IInspectable
            {
                [propget] HRESULT Label([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT Icon([out] [retval] Windows.Foundation.Uri** value);
                [propget] HRESULT State([out] [retval] Windows.Storage.Provider.StorageProviderUICommandState* value);
                HRESULT Invoke();
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 2.0)]
            [uuid(B29806D1-8BE0-4962-8BB6-0D4C2E14D47A)]
            interface IStorageProviderUriSource : IInspectable
            {
                HRESULT GetPathForContentUri([in] HSTRING contentUri, [in] Windows.Storage.Provider.StorageProviderGetPathForContentUriResult* result);
                HRESULT GetContentInfoForPath([in] HSTRING path, [in] Windows.Storage.Provider.StorageProviderGetContentInfoForPathResult* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Storage.Provider.ICachedFileUpdaterStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass CachedFileUpdater
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass CachedFileUpdaterUI
            {
                [default] interface Windows.Storage.Provider.ICachedFileUpdaterUI;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.Provider.ICachedFileUpdaterUI2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass FileUpdateRequest
            {
                [default] interface Windows.Storage.Provider.IFileUpdateRequest;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.Provider.IFileUpdateRequest2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass FileUpdateRequestDeferral
            {
                [default] interface Windows.Storage.Provider.IFileUpdateRequestDeferral;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass FileUpdateRequestedEventArgs
            {
                [default] interface Windows.Storage.Provider.IFileUpdateRequestedEventArgs;
            }

            [activatable(Windows.Storage.Provider.IStorageProviderFileTypeInfoFactory, Windows.Storage.Provider.CloudFilesContract, 4.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderFileTypeInfo
            {
                [default] interface Windows.Storage.Provider.IStorageProviderFileTypeInfo;
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 2.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderGetContentInfoForPathResult
            {
                [default] interface Windows.Storage.Provider.IStorageProviderGetContentInfoForPathResult;
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 2.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderGetPathForContentUriResult
            {
                [default] interface Windows.Storage.Provider.IStorageProviderGetPathForContentUriResult;
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Storage.Provider.IStorageProviderItemPropertiesStatics, Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [threading(both)]
            runtimeclass StorageProviderItemProperties
            {
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderItemProperty
            {
                [default] interface Windows.Storage.Provider.IStorageProviderItemProperty;
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderItemPropertyDefinition
            {
                [default] interface Windows.Storage.Provider.IStorageProviderItemPropertyDefinition;
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderKnownFolderEntry
            {
                [default] interface Windows.Storage.Provider.IStorageProviderKnownFolderEntry;
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderKnownFolderSyncInfo
            {
                [default] interface Windows.Storage.Provider.IStorageProviderKnownFolderSyncInfo;
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [marshaling_behavior(agile)]
            runtimeclass StorageProviderKnownFolderSyncRequestArgs
            {
                [default] interface Windows.Storage.Provider.IStorageProviderKnownFolderSyncRequestArgs;
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderMoreInfoUI
            {
                [default] interface Windows.Storage.Provider.IStorageProviderMoreInfoUI;
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderQuotaUI
            {
                [default] interface Windows.Storage.Provider.IStorageProviderQuotaUI;
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 7.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderStatusUI
            {
                [default] interface Windows.Storage.Provider.IStorageProviderStatusUI;
            }

            [activatable(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StorageProviderSyncRootInfo
            {
                [default] interface Windows.Storage.Provider.IStorageProviderSyncRootInfo;
                [contract(Windows.Storage.Provider.CloudFilesContract, 3.0)] interface Windows.Storage.Provider.IStorageProviderSyncRootInfo2;
                [contract(Windows.Storage.Provider.CloudFilesContract, 4.0)] interface Windows.Storage.Provider.IStorageProviderSyncRootInfo3;
            }

            [contract(Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Storage.Provider.IStorageProviderSyncRootManagerStatics, Windows.Storage.Provider.CloudFilesContract, 1.0)]
            [static(Windows.Storage.Provider.IStorageProviderSyncRootManagerStatics2, Windows.Storage.Provider.CloudFilesContract, 4.0)]
            [threading(both)]
            runtimeclass StorageProviderSyncRootManager
            {
            }
        }
    }
}
