//
// 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.Security.Authentication.Web.idl";
import "Windows.Security.Authentication.Web.Core.idl";
import "Windows.Security.Credentials.idl";
import "Windows.Security.Cryptography.Core.idl";
import "Windows.Storage.Streams.idl";
import "Windows.System.idl";
import "Windows.Web.Http.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        interface IAsyncAction;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Web
            {
                namespace Core
                {
                    runtimeclass WebProviderError;

                    runtimeclass WebTokenRequest;

                    runtimeclass WebTokenResponse;
                }
            }
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Web
            {
                typedef enum TokenBindingKeyType TokenBindingKeyType;
            }
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Credentials
        {
            runtimeclass WebAccount;
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Cryptography
        {
            namespace Core
            {
                runtimeclass CryptographicKey;
            }
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;

            interface IRandomAccessStream;
        }
    }
}
namespace Windows
{
    namespace System
    {
        runtimeclass User;
    }
}
namespace Windows
{
    namespace Web
    {
        namespace Http
        {
            runtimeclass HttpCookie;
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Web
            {
                namespace Provider
                {
                    typedef enum WebAccountClientViewType WebAccountClientViewType;

                    typedef enum WebAccountProviderOperationKind WebAccountProviderOperationKind;

                    typedef enum WebAccountScope WebAccountScope;

                    typedef enum WebAccountSelectionOptions WebAccountSelectionOptions;

                    interface IWebAccountClientView;

                    interface IWebAccountClientViewFactory;

                    interface IWebAccountManagerStatics;

                    interface IWebAccountManagerStatics2;

                    interface IWebAccountManagerStatics3;

                    interface IWebAccountManagerStatics4;

                    interface IWebAccountMapManagerStatics;

                    interface IWebAccountProviderAddAccountOperation;

                    interface IWebAccountProviderBaseReportOperation;

                    interface IWebAccountProviderDeleteAccountOperation;

                    interface IWebAccountProviderManageAccountOperation;

                    interface IWebAccountProviderOperation;

                    interface IWebAccountProviderRetrieveCookiesOperation;

                    interface IWebAccountProviderSignOutAccountOperation;

                    interface IWebAccountProviderSilentReportOperation;

                    interface IWebAccountProviderTokenObjects;

                    interface IWebAccountProviderTokenObjects2;

                    interface IWebAccountProviderTokenOperation;

                    interface IWebAccountProviderUIReportOperation;

                    interface IWebAccountScopeManagerStatics;

                    interface IWebProviderTokenRequest;

                    interface IWebProviderTokenRequest2;

                    interface IWebProviderTokenRequest3;

                    interface IWebProviderTokenResponse;

                    interface IWebProviderTokenResponseFactory;

                    runtimeclass WebAccountClientView;

                    runtimeclass WebAccountManager;

                    runtimeclass WebAccountProviderAddAccountOperation;

                    runtimeclass WebAccountProviderDeleteAccountOperation;

                    runtimeclass WebAccountProviderGetTokenSilentOperation;

                    runtimeclass WebAccountProviderManageAccountOperation;

                    runtimeclass WebAccountProviderRequestTokenOperation;

                    runtimeclass WebAccountProviderRetrieveCookiesOperation;

                    runtimeclass WebAccountProviderSignOutAccountOperation;

                    runtimeclass WebAccountProviderTriggerDetails;

                    runtimeclass WebProviderTokenRequest;

                    runtimeclass WebProviderTokenResponse;
                }
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Web
            {
                namespace Provider
                {
                    declare
                    {
                        interface Windows.Foundation.Collections.IIterable<Windows.Security.Authentication.Web.Provider.WebAccountClientView*>;

                        interface Windows.Foundation.Collections.IIterable<Windows.Security.Authentication.Web.Provider.WebProviderTokenResponse*>;

                        interface Windows.Foundation.Collections.IIterator<Windows.Security.Authentication.Web.Provider.WebAccountClientView*>;

                        interface Windows.Foundation.Collections.IIterator<Windows.Security.Authentication.Web.Provider.WebProviderTokenResponse*>;

                        interface Windows.Foundation.Collections.IVectorView<Windows.Security.Authentication.Web.Provider.WebAccountClientView*>;

                        interface Windows.Foundation.Collections.IVectorView<Windows.Security.Authentication.Web.Provider.WebProviderTokenResponse*>;

                        interface Windows.Foundation.Collections.IVector<Windows.Security.Authentication.Web.Provider.WebProviderTokenResponse*>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Security.Authentication.Web.Provider.WebAccountClientView*>*>;
                    }
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Web
            {
                namespace Provider
                {
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    enum WebAccountClientViewType
                    {
                        IdOnly          = 0,
                        IdAndProperties = 1
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    enum WebAccountProviderOperationKind
                    {
                        RequestToken     = 0,
                        GetTokenSilently = 1,
                        AddAccount       = 2,
                        ManageAccount    = 3,
                        DeleteAccount    = 4,
                        RetrieveCookies  = 5,
                        SignOutAccount   = 6
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    enum WebAccountScope
                    {
                        PerUser        = 0,
                        PerApplication = 1
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [flags]
                    enum WebAccountSelectionOptions
                    {
                        Default = 0x0,
                        New     = 0x1
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountClientView)]
                    [uuid(E7BD66BA-0BC7-4C66-BFD4-65D3082CBCA8)]
                    interface IWebAccountClientView : IInspectable
                    {
                        [propget] HRESULT ApplicationCallbackUri([out] [retval] Windows.Foundation.Uri** value);
                        [propget] HRESULT Type([out] [retval] Windows.Security.Authentication.Web.Provider.WebAccountClientViewType* value);
                        [propget] HRESULT AccountPairwiseId([out] [retval] HSTRING* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountClientView)]
                    [uuid(616D16A4-DE22-4855-A326-06CEBF2A3F23)]
                    interface IWebAccountClientViewFactory : IInspectable
                    {
                        HRESULT Create([in] Windows.Security.Authentication.Web.Provider.WebAccountClientViewType viewType, [in] Windows.Foundation.Uri* applicationCallbackUri, [out] [retval] Windows.Security.Authentication.Web.Provider.WebAccountClientView** view);
                        HRESULT CreateWithPairwiseId([in] Windows.Security.Authentication.Web.Provider.WebAccountClientViewType viewType, [in] Windows.Foundation.Uri* applicationCallbackUri, [in] HSTRING accountPairwiseId, [out] [retval] Windows.Security.Authentication.Web.Provider.WebAccountClientView** view);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountManager)]
                    [uuid(B2E8E1A6-D49A-4032-84BF-1A2847747BF1)]
                    interface IWebAccountManagerStatics : IInspectable
                    {
                        HRESULT UpdateWebAccountPropertiesAsync([in] Windows.Security.Credentials.WebAccount* webAccount, [in] HSTRING webAccountUserName, [in] Windows.Foundation.Collections.IMapView<HSTRING, HSTRING>* additionalProperties, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                        [overload("AddWebAccountAsync")] HRESULT AddWebAccountAsync([in] HSTRING webAccountId, [in] HSTRING webAccountUserName, [in] Windows.Foundation.Collections.IMapView<HSTRING, HSTRING>* props, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccount*>** asyncInfo);
                        HRESULT DeleteWebAccountAsync([in] Windows.Security.Credentials.WebAccount* webAccount, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                        HRESULT FindAllProviderWebAccountsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Security.Credentials.WebAccount*>*>** asyncInfo);
                        HRESULT PushCookiesAsync([in] Windows.Foundation.Uri* uri, [in] Windows.Foundation.Collections.IVectorView<Windows.Web.Http.HttpCookie*>* cookies, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                        HRESULT SetViewAsync([in] Windows.Security.Credentials.WebAccount* webAccount, [in] Windows.Security.Authentication.Web.Provider.WebAccountClientView* view, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                        HRESULT ClearViewAsync([in] Windows.Security.Credentials.WebAccount* webAccount, [in] Windows.Foundation.Uri* applicationCallbackUri, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                        HRESULT GetViewsAsync([in] Windows.Security.Credentials.WebAccount* webAccount, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Security.Authentication.Web.Provider.WebAccountClientView*>*>** asyncInfo);
                        HRESULT SetWebAccountPictureAsync([in] Windows.Security.Credentials.WebAccount* webAccount, [in] Windows.Storage.Streams.IRandomAccessStream* webAccountPicture, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                        HRESULT ClearWebAccountPictureAsync([in] Windows.Security.Credentials.WebAccount* webAccount, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountManager)]
                    [uuid(68A7A829-2D5F-4653-8BB0-BD2FA6BD2D87)]
                    interface IWebAccountManagerStatics2 : IInspectable
                    {
                        HRESULT PullCookiesAsync([in] HSTRING uriString, [in] HSTRING callerPFN, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountManager)]
                    [uuid(DD4523A6-8A4F-4AA2-B15E-03F550AF1359)]
                    interface IWebAccountManagerStatics3 : IInspectable
                    {
                        HRESULT FindAllProviderWebAccountsForUserAsync([in] Windows.System.User* user, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Security.Credentials.WebAccount*>*>** operation);
                        [overload("AddWebAccountForUserAsync")] HRESULT AddWebAccountForUserAsync([in] Windows.System.User* user, [in] HSTRING webAccountId, [in] HSTRING webAccountUserName, [in] Windows.Foundation.Collections.IMapView<HSTRING, HSTRING>* props, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccount*>** operation);
                        [overload("AddWebAccountForUserAsync")] HRESULT AddWebAccountWithScopeForUserAsync([in] Windows.System.User* user, [in] HSTRING webAccountId, [in] HSTRING webAccountUserName, [in] Windows.Foundation.Collections.IMapView<HSTRING, HSTRING>* props, [in] Windows.Security.Authentication.Web.Provider.WebAccountScope scope, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccount*>** operation);
                        [overload("AddWebAccountForUserAsync")] HRESULT AddWebAccountWithScopeAndMapForUserAsync([in] Windows.System.User* user, [in] HSTRING webAccountId, [in] HSTRING webAccountUserName, [in] Windows.Foundation.Collections.IMapView<HSTRING, HSTRING>* props, [in] Windows.Security.Authentication.Web.Provider.WebAccountScope scope, [in] HSTRING perUserWebAccountId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccount*>** operation);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountManager)]
                    [uuid(59EBC2D2-F7DB-412F-BC3F-F2FEA04430B4)]
                    interface IWebAccountManagerStatics4 : IInspectable
                    {
                        HRESULT InvalidateAppCacheForAllAccountsAsync([out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                        HRESULT InvalidateAppCacheForAccountAsync([in] Windows.Security.Credentials.WebAccount* webAccount, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountManager)]
                    [uuid(E8FA446F-3A1B-48A4-8E90-1E59CA6F54DB)]
                    interface IWebAccountMapManagerStatics : IInspectable
                    {
                        [overload("AddWebAccountAsync")] HRESULT AddWebAccountWithScopeAndMapAsync([in] HSTRING webAccountId, [in] HSTRING webAccountUserName, [in] Windows.Foundation.Collections.IMapView<HSTRING, HSTRING>* props, [in] Windows.Security.Authentication.Web.Provider.WebAccountScope scope, [in] HSTRING perUserWebAccountId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccount*>** asyncInfo);
                        HRESULT SetPerAppToPerUserAccountAsync([in] Windows.Security.Credentials.WebAccount* perAppAccount, [in] HSTRING perUserWebAccountId, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                        HRESULT GetPerUserFromPerAppAccountAsync([in] Windows.Security.Credentials.WebAccount* perAppAccount, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccount*>** asyncInfo);
                        HRESULT ClearPerUserFromPerAppAccountAsync([in] Windows.Security.Credentials.WebAccount* perAppAccount, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountProviderAddAccountOperation)]
                    [uuid(73EBDCCF-4378-4C79-9335-A5D7AB81594E)]
                    interface IWebAccountProviderAddAccountOperation : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation
                    {
                        HRESULT ReportCompleted();
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [uuid(BBA4ACBB-993B-4D57-BBE4-1421E3668B4C)]
                    interface IWebAccountProviderBaseReportOperation : IInspectable
                    {
                        HRESULT ReportCompleted();
                        HRESULT ReportError([in] Windows.Security.Authentication.Web.Core.WebProviderError* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountProviderDeleteAccountOperation)]
                    [uuid(0ABB48B8-9E01-49C9-A355-7D48CAF7D6CA)]
                    interface IWebAccountProviderDeleteAccountOperation : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation
                    {
                        [propget] HRESULT WebAccount([out] [retval] Windows.Security.Credentials.WebAccount** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountProviderManageAccountOperation)]
                    [uuid(ED20DC5C-D21B-463E-A9B7-C1FD0EDAE978)]
                    interface IWebAccountProviderManageAccountOperation : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation
                    {
                        [propget] HRESULT WebAccount([out] [retval] Windows.Security.Credentials.WebAccount** value);
                        HRESULT ReportCompleted();
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [uuid(6D5D2426-10B1-419A-A44E-F9C5161574E6)]
                    interface IWebAccountProviderOperation : IInspectable
                    {
                        [propget] HRESULT Kind([out] [retval] Windows.Security.Authentication.Web.Provider.WebAccountProviderOperationKind* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountProviderRetrieveCookiesOperation)]
                    [uuid(5A040441-0FA3-4AB1-A01C-20B110358594)]
                    interface IWebAccountProviderRetrieveCookiesOperation : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation
                    {
                        [propget] HRESULT Context([out] [retval] Windows.Foundation.Uri** webCookieRequestContext);
                        [propget] HRESULT Cookies([out] [retval] Windows.Foundation.Collections.IVector<Windows.Web.Http.HttpCookie*>** cookies);
                        [propput] HRESULT Uri([in] Windows.Foundation.Uri* uri);
                        [propget] HRESULT Uri([out] [retval] Windows.Foundation.Uri** uri);
                        [propget] HRESULT ApplicationCallbackUri([out] [retval] Windows.Foundation.Uri** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountProviderSignOutAccountOperation)]
                    [uuid(B890E21D-0C55-47BC-8C72-04A6FC7CAC07)]
                    interface IWebAccountProviderSignOutAccountOperation : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation
                    {
                        [propget] HRESULT WebAccount([out] [retval] Windows.Security.Credentials.WebAccount** value);
                        [propget] HRESULT ApplicationCallbackUri([out] [retval] Windows.Foundation.Uri** value);
                        [propget] HRESULT ClientId([out] [retval] HSTRING* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [uuid(E0B545F8-3B0F-44DA-924C-7B18BAAA62A9)]
                    interface IWebAccountProviderSilentReportOperation : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Provider.IWebAccountProviderBaseReportOperation
                    {
                        [overload("ReportUserInteractionRequired")] HRESULT ReportUserInteractionRequired();
                        [overload("ReportUserInteractionRequired")] HRESULT ReportUserInteractionRequiredWithError([in] Windows.Security.Authentication.Web.Core.WebProviderError* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [uuid(408F284B-1328-42DB-89A4-0BCE7A717D8E)]
                    interface IWebAccountProviderTokenObjects : IInspectable
                    {
                        [propget] HRESULT Operation([out] [retval] Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [uuid(1020B893-5CA5-4FFF-95FB-B820273FC395)]
                    interface IWebAccountProviderTokenObjects2 : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Provider.IWebAccountProviderTokenObjects
                    {
                        [propget] HRESULT User([out] [retval] Windows.System.User** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [uuid(95C613BE-2034-4C38-9434-D26C14B2B4B2)]
                    interface IWebAccountProviderTokenOperation : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation
                    {
                        [propget] HRESULT ProviderRequest([out] [retval] Windows.Security.Authentication.Web.Provider.WebProviderTokenRequest** webTokenRequest);
                        [propget] HRESULT ProviderResponses([out] [retval] Windows.Foundation.Collections.IVector<Windows.Security.Authentication.Web.Provider.WebProviderTokenResponse*>** value);
                        [propput] HRESULT CacheExpirationTime([in] Windows.Foundation.DateTime value);
                        [propget] HRESULT CacheExpirationTime([out] [retval] Windows.Foundation.DateTime* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [uuid(28FF92D3-8F80-42FB-944F-B2107BBD42E6)]
                    interface IWebAccountProviderUIReportOperation : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Provider.IWebAccountProviderBaseReportOperation
                    {
                        HRESULT ReportUserCanceled();
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebAccountManager)]
                    [uuid(5C6CE37C-12B2-423A-BF3D-85B8D7E53656)]
                    interface IWebAccountScopeManagerStatics : IInspectable
                    {
                        [overload("AddWebAccountAsync")] HRESULT AddWebAccountWithScopeAsync([in] HSTRING webAccountId, [in] HSTRING webAccountUserName, [in] Windows.Foundation.Collections.IMapView<HSTRING, HSTRING>* props, [in] Windows.Security.Authentication.Web.Provider.WebAccountScope scope, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccount*>** asyncInfo);
                        HRESULT SetScopeAsync([in] Windows.Security.Credentials.WebAccount* webAccount, [in] Windows.Security.Authentication.Web.Provider.WebAccountScope scope, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                        HRESULT GetScope([in] Windows.Security.Credentials.WebAccount* webAccount, [out] [retval] Windows.Security.Authentication.Web.Provider.WebAccountScope* scope);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebProviderTokenRequest)]
                    [uuid(1E18778B-8805-454B-9F11-468D2AF1095A)]
                    interface IWebProviderTokenRequest : IInspectable
                    {
                        [propget] HRESULT ClientRequest([out] [retval] Windows.Security.Authentication.Web.Core.WebTokenRequest** value);
                        [propget] HRESULT WebAccounts([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Security.Credentials.WebAccount*>** value);
                        [propget] HRESULT WebAccountSelectionOptions([out] [retval] Windows.Security.Authentication.Web.Provider.WebAccountSelectionOptions* value);
                        [propget] HRESULT ApplicationCallbackUri([out] [retval] Windows.Foundation.Uri** value);
                        HRESULT GetApplicationTokenBindingKeyAsync([in] Windows.Security.Authentication.Web.TokenBindingKeyType keyType, [in] Windows.Foundation.Uri* target, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Cryptography.Core.CryptographicKey*>** asyncInfo);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebProviderTokenRequest)]
                    [uuid(B5D72E4C-10B1-4AA6-88B1-0B6C9E0C1E46)]
                    interface IWebProviderTokenRequest2 : IInspectable
                    {
                        HRESULT GetApplicationTokenBindingKeyIdAsync([in] Windows.Security.Authentication.Web.TokenBindingKeyType keyType, [in] Windows.Foundation.Uri* target, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer*>** asyncInfo);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebProviderTokenRequest)]
                    [uuid(1B2716AA-4289-446E-9256-DAFB6F66A51E)]
                    interface IWebProviderTokenRequest3 : IInspectable
                    {
                        [propget] HRESULT ApplicationPackageFamilyName([out] [retval] HSTRING* value);
                        [propget] HRESULT ApplicationProcessName([out] [retval] HSTRING* value);
                        HRESULT CheckApplicationForCapabilityAsync([in] HSTRING capabilityName, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebProviderTokenResponse)]
                    [uuid(EF213793-EF55-4186-B7CE-8CB2E7F9849E)]
                    interface IWebProviderTokenResponse : IInspectable
                    {
                        [propget] HRESULT ClientResponse([out] [retval] Windows.Security.Authentication.Web.Core.WebTokenResponse** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Provider.WebProviderTokenResponse)]
                    [uuid(FA49D99A-25BA-4077-9CFA-9DB4DEA7B71A)]
                    interface IWebProviderTokenResponseFactory : IInspectable
                    {
                        HRESULT Create([in] Windows.Security.Authentication.Web.Core.WebTokenResponse* webTokenResponse, [out] [retval] Windows.Security.Authentication.Web.Provider.WebProviderTokenResponse** webProviderTokenResponse);
                    }

                    [activatable(Windows.Security.Authentication.Web.Provider.IWebAccountClientViewFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass WebAccountClientView
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebAccountClientView;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [static(Windows.Security.Authentication.Web.Provider.IWebAccountManagerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                    [static(Windows.Security.Authentication.Web.Provider.IWebAccountManagerStatics2, Windows.Foundation.UniversalApiContract, 2.0)]
                    [static(Windows.Security.Authentication.Web.Provider.IWebAccountManagerStatics3, Windows.Foundation.UniversalApiContract, 4.0)]
                    [static(Windows.Security.Authentication.Web.Provider.IWebAccountManagerStatics4, Windows.Foundation.UniversalApiContract, 5.0)]
                    [static(Windows.Security.Authentication.Web.Provider.IWebAccountMapManagerStatics, Windows.Foundation.UniversalApiContract, 3.0)]
                    [static(Windows.Security.Authentication.Web.Provider.IWebAccountScopeManagerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                    runtimeclass WebAccountManager
                    {
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAccountProviderAddAccountOperation
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderAddAccountOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAccountProviderDeleteAccountOperation
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderDeleteAccountOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderBaseReportOperation;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAccountProviderGetTokenSilentOperation
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderTokenOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderSilentReportOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderBaseReportOperation;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAccountProviderManageAccountOperation
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderManageAccountOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAccountProviderRequestTokenOperation
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderTokenOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderUIReportOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderBaseReportOperation;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAccountProviderRetrieveCookiesOperation
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderRetrieveCookiesOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderBaseReportOperation;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAccountProviderSignOutAccountOperation
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderSignOutAccountOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderOperation;
                        interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderBaseReportOperation;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass WebAccountProviderTriggerDetails
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderTokenObjects;
                        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Security.Authentication.Web.Provider.IWebAccountProviderTokenObjects2;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebProviderTokenRequest
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebProviderTokenRequest;
                        [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Security.Authentication.Web.Provider.IWebProviderTokenRequest2;
                        [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Security.Authentication.Web.Provider.IWebProviderTokenRequest3;
                    }

                    [activatable(Windows.Security.Authentication.Web.Provider.IWebProviderTokenResponseFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass WebProviderTokenResponse
                    {
                        [default] interface Windows.Security.Authentication.Web.Provider.IWebProviderTokenResponse;
                    }
                }
            }
        }
    }
}
