//
// 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.Provider.idl";
import "Windows.Web.Http.idl";

// Forward Declare
namespace Windows
{
    namespace Storage
    {
        namespace Provider
        {
            apicontract CloudFilesContract;
        }
    }
}
namespace Windows
{
    namespace Web
    {
        namespace Http
        {
            runtimeclass HttpRequestMessage;

            runtimeclass HttpResponseMessage;
        }
    }
}
namespace Windows
{
    namespace System
    {
        namespace Implementation
        {
            namespace FileExplorer
            {
                interface ISysStorageProviderEventReceivedEventArgs;

                interface ISysStorageProviderEventReceivedEventArgsFactory;

                interface ISysStorageProviderEventSource;

                interface ISysStorageProviderHandlerFactory;

                interface ISysStorageProviderHttpRequestProvider;

                runtimeclass SysStorageProviderEventReceivedEventArgs;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace System
    {
        namespace Implementation
        {
            namespace FileExplorer
            {
                declare
                {
                    interface Windows.Foundation.TypedEventHandler<Windows.System.Implementation.FileExplorer.ISysStorageProviderEventSource*, Windows.System.Implementation.FileExplorer.SysStorageProviderEventReceivedEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace System
    {
        namespace Implementation
        {
            namespace FileExplorer
            {
                [contract(Windows.Storage.Provider.CloudFilesContract, 5.0)]
                [exclusiveto(Windows.System.Implementation.FileExplorer.SysStorageProviderEventReceivedEventArgs)]
                [uuid(E132D1B9-7B9D-5820-9728-4262B5289142)]
                interface ISysStorageProviderEventReceivedEventArgs : IInspectable
                {
                    [propget] HRESULT Json([out] [retval] HSTRING* value);
                }

                [contract(Windows.Storage.Provider.CloudFilesContract, 5.0)]
                [exclusiveto(Windows.System.Implementation.FileExplorer.SysStorageProviderEventReceivedEventArgs)]
                [uuid(DE1A780E-E975-5F68-BCC6-FB46281C6A61)]
                interface ISysStorageProviderEventReceivedEventArgsFactory : IInspectable
                {
                    HRESULT CreateInstance([in] HSTRING json, [out] [retval] Windows.System.Implementation.FileExplorer.SysStorageProviderEventReceivedEventArgs** value);
                }

                [contract(Windows.Storage.Provider.CloudFilesContract, 5.0)]
                [uuid(1F36C476-9546-536A-8381-2F9A2C08CEDD)]
                interface ISysStorageProviderEventSource : IInspectable
                {
                    [eventadd] HRESULT EventReceived([in] Windows.Foundation.TypedEventHandler<Windows.System.Implementation.FileExplorer.ISysStorageProviderEventSource*, Windows.System.Implementation.FileExplorer.SysStorageProviderEventReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT EventReceived([in] EventRegistrationToken token);
                }

                [contract(Windows.Storage.Provider.CloudFilesContract, 5.0)]
                [uuid(EE798431-8213-5E89-A623-14D8C72B8A61)]
                interface ISysStorageProviderHandlerFactory : IInspectable
                {
                    HRESULT GetHttpRequestProvider([in] HSTRING syncRootId, [out] [retval] Windows.System.Implementation.FileExplorer.ISysStorageProviderHttpRequestProvider** result);
                    HRESULT GetEventSource([in] HSTRING syncRootId, [in] HSTRING eventName, [out] [retval] Windows.System.Implementation.FileExplorer.ISysStorageProviderEventSource** result);
                }

                [contract(Windows.Storage.Provider.CloudFilesContract, 5.0)]
                [uuid(CB6FEFB6-E76A-5C25-A33E-3E78A6E0E0CE)]
                interface ISysStorageProviderHttpRequestProvider : IInspectable
                {
                    HRESULT SendRequestAsync([in] Windows.Web.Http.HttpRequestMessage* request, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Web.Http.HttpResponseMessage*>** operation);
                }

                [activatable(Windows.System.Implementation.FileExplorer.ISysStorageProviderEventReceivedEventArgsFactory, Windows.Storage.Provider.CloudFilesContract, 5.0)]
                [contract(Windows.Storage.Provider.CloudFilesContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SysStorageProviderEventReceivedEventArgs
                {
                    [default] interface Windows.System.Implementation.FileExplorer.ISysStorageProviderEventReceivedEventArgs;
                }
            }
        }
    }
}
