//
// 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.Credentials.idl";
import "Windows.System.idl";

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

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Credentials
        {
            runtimeclass WebAccount;

            runtimeclass WebAccountProvider;
        }
    }
}
namespace Windows
{
    namespace System
    {
        runtimeclass User;
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Web
            {
                namespace Core
                {
                    typedef enum FindAllWebAccountsStatus FindAllWebAccountsStatus;

                    typedef enum WebAuthenticationAddAccountStatus WebAuthenticationAddAccountStatus;

                    typedef enum WebTokenRequestPromptType WebTokenRequestPromptType;

                    typedef enum WebTokenRequestStatus WebTokenRequestStatus;

                    interface IFindAllAccountsResult;

                    interface IWebAccountEventArgs;

                    interface IWebAccountMonitor;

                    interface IWebAccountMonitor2;

                    interface IWebAuthenticationAddAccountResponse;

                    interface IWebAuthenticationAddAccountResponseFactory;

                    interface IWebAuthenticationAddAccountResult;

                    interface IWebAuthenticationCoreManagerStatics;

                    interface IWebAuthenticationCoreManagerStatics2;

                    interface IWebAuthenticationCoreManagerStatics3;

                    interface IWebAuthenticationCoreManagerStatics4;

                    interface IWebAuthenticationCoreManagerStatics5;

                    interface IWebAuthenticationTransferTokenRequest;

                    interface IWebAuthenticationTransferTokenRequestFactory;

                    interface IWebProviderError;

                    interface IWebProviderErrorFactory;

                    interface IWebTokenRequest;

                    interface IWebTokenRequest2;

                    interface IWebTokenRequest3;

                    interface IWebTokenRequestFactory;

                    interface IWebTokenRequestResult;

                    interface IWebTokenResponse;

                    interface IWebTokenResponseFactory;

                    runtimeclass FindAllAccountsResult;

                    runtimeclass WebAccountEventArgs;

                    runtimeclass WebAccountMonitor;

                    runtimeclass WebAuthenticationAddAccountResponse;

                    runtimeclass WebAuthenticationAddAccountResult;

                    runtimeclass WebAuthenticationCoreManager;

                    runtimeclass WebAuthenticationTransferTokenRequest;

                    runtimeclass WebProviderError;

                    runtimeclass WebTokenRequest;

                    runtimeclass WebTokenRequestResult;

                    runtimeclass WebTokenResponse;
                }
            }
        }
    }
}

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

                        interface Windows.Foundation.Collections.IIterator<Windows.Security.Authentication.Web.Core.WebTokenResponse*>;

                        interface Windows.Foundation.Collections.IVectorView<Windows.Security.Authentication.Web.Core.WebTokenResponse*>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.FindAllAccountsResult*>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.WebAuthenticationAddAccountResult*>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.WebTokenRequestResult*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.Security.Authentication.Web.Core.WebAccountMonitor*, IInspectable*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.Security.Authentication.Web.Core.WebAccountMonitor*, Windows.Security.Authentication.Web.Core.WebAccountEventArgs*>;
                    }
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Web
            {
                namespace Core
                {
                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    enum FindAllWebAccountsStatus
                    {
                        Success                = 0,
                        NotAllowedByProvider   = 1,
                        NotSupportedByProvider = 2,
                        ProviderError          = 3
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    enum WebAuthenticationAddAccountStatus
                    {
                        Success                = 0,
                        Error                  = 1,
                        NotSupportedByProvider = 2,
                        ServiceConnectionError = 3,
                        ProviderError          = 4
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    enum WebTokenRequestPromptType
                    {
                        Default             = 0,
                        ForceAuthentication = 1
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    enum WebTokenRequestStatus
                    {
                        Success                     = 0,
                        UserCancel                  = 1,
                        AccountSwitch               = 2,
                        UserInteractionRequired     = 3,
                        AccountProviderNotAvailable = 4,
                        ProviderError               = 5
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.FindAllAccountsResult)]
                    [uuid(A5812B5D-B72E-420C-86AB-AAC0D7B7261F)]
                    interface IFindAllAccountsResult : IInspectable
                    {
                        [propget] HRESULT Accounts([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Security.Credentials.WebAccount*>** value);
                        [propget] HRESULT Status([out] [retval] Windows.Security.Authentication.Web.Core.FindAllWebAccountsStatus* value);
                        [propget] HRESULT ProviderError([out] [retval] Windows.Security.Authentication.Web.Core.WebProviderError** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAccountEventArgs)]
                    [uuid(6FB7037D-424E-44EC-977C-EF2415462A5A)]
                    interface IWebAccountEventArgs : IInspectable
                    {
                        [propget] HRESULT Account([out] [retval] Windows.Security.Credentials.WebAccount** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAccountMonitor)]
                    [uuid(7445F5FD-AA9D-4619-8D5D-C138A4EDE3E5)]
                    interface IWebAccountMonitor : IInspectable
                    {
                        [eventadd] HRESULT Updated([in] Windows.Foundation.TypedEventHandler<Windows.Security.Authentication.Web.Core.WebAccountMonitor*, Windows.Security.Authentication.Web.Core.WebAccountEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT Updated([in] EventRegistrationToken token);
                        [eventadd] HRESULT Removed([in] Windows.Foundation.TypedEventHandler<Windows.Security.Authentication.Web.Core.WebAccountMonitor*, Windows.Security.Authentication.Web.Core.WebAccountEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT Removed([in] EventRegistrationToken token);
                        [eventadd] HRESULT DefaultSignInAccountChanged([in] Windows.Foundation.TypedEventHandler<Windows.Security.Authentication.Web.Core.WebAccountMonitor*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT DefaultSignInAccountChanged([in] EventRegistrationToken token);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 10.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAccountMonitor)]
                    [uuid(A7ADC1F8-24B8-4F01-9AE5-24545E71233A)]
                    interface IWebAccountMonitor2 : IInspectable
                    {
                        [eventadd] HRESULT AccountPictureUpdated([in] Windows.Foundation.TypedEventHandler<Windows.Security.Authentication.Web.Core.WebAccountMonitor*, Windows.Security.Authentication.Web.Core.WebAccountEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT AccountPictureUpdated([in] EventRegistrationToken token);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationAddAccountResponse)]
                    [uuid(7FB013E8-0BD8-542B-B486-8323163A4B85)]
                    interface IWebAuthenticationAddAccountResponse : IInspectable
                    {
                        [propget] HRESULT WebAccount([out] [retval] Windows.Security.Credentials.WebAccount** value);
                        [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationAddAccountResponse)]
                    [uuid(325F903E-77BE-5365-81D9-0321CDD82195)]
                    interface IWebAuthenticationAddAccountResponseFactory : IInspectable
                    {
                        HRESULT CreateWithAccount([in] Windows.Security.Credentials.WebAccount* webAccount, [out] [retval] Windows.Security.Authentication.Web.Core.WebAuthenticationAddAccountResponse** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationAddAccountResult)]
                    [uuid(88FAD03C-901D-5FFA-9259-701D3CA08EF2)]
                    interface IWebAuthenticationAddAccountResult : IInspectable
                    {
                        [propget] HRESULT ResponseData([out] [retval] Windows.Security.Authentication.Web.Core.WebAuthenticationAddAccountResponse** value);
                        [propget] HRESULT ResponseStatus([out] [retval] Windows.Security.Authentication.Web.Core.WebAuthenticationAddAccountStatus* value);
                        [propget] HRESULT ResponseError([out] [retval] Windows.Security.Authentication.Web.Core.WebProviderError** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager)]
                    [uuid(6ACA7C92-A581-4479-9C10-752EFF44FD34)]
                    interface IWebAuthenticationCoreManagerStatics : IInspectable
                    {
                        [overload("GetTokenSilentlyAsync")] HRESULT GetTokenSilentlyAsync([in] Windows.Security.Authentication.Web.Core.WebTokenRequest* request, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.WebTokenRequestResult*>** asyncInfo);
                        [overload("GetTokenSilentlyAsync")] HRESULT GetTokenSilentlyWithWebAccountAsync([in] Windows.Security.Authentication.Web.Core.WebTokenRequest* request, [in] Windows.Security.Credentials.WebAccount* webAccount, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.WebTokenRequestResult*>** asyncInfo);
                        [overload("RequestTokenAsync")] HRESULT RequestTokenAsync([in] Windows.Security.Authentication.Web.Core.WebTokenRequest* request, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.WebTokenRequestResult*>** asyncInfo);
                        [overload("RequestTokenAsync")] HRESULT RequestTokenWithWebAccountAsync([in] Windows.Security.Authentication.Web.Core.WebTokenRequest* request, [in] Windows.Security.Credentials.WebAccount* webAccount, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.WebTokenRequestResult*>** asyncInfo);
                        HRESULT FindAccountAsync([in] Windows.Security.Credentials.WebAccountProvider* provider, [in] HSTRING webAccountId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccount*>** asyncInfo);
                        [overload("FindAccountProviderAsync")] HRESULT FindAccountProviderAsync([in] HSTRING webAccountProviderId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccountProvider*>** asyncInfo);
                        [overload("FindAccountProviderAsync")] HRESULT FindAccountProviderWithAuthorityAsync([in] HSTRING webAccountProviderId, [in] HSTRING authority, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccountProvider*>** asyncInfo);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager)]
                    [uuid(F584184A-8B57-4820-B6A4-70A5B6FCF44A)]
                    interface IWebAuthenticationCoreManagerStatics2 : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Core.IWebAuthenticationCoreManagerStatics
                    {
                        [overload("FindAccountProviderAsync")] HRESULT FindAccountProviderWithAuthorityForUserAsync([in] HSTRING webAccountProviderId, [in] HSTRING authority, [in] Windows.System.User* user, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccountProvider*>** asyncInfo);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager)]
                    [uuid(2404EEB2-8924-4D93-AB3A-99688B419D56)]
                    interface IWebAuthenticationCoreManagerStatics3 : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Core.IWebAuthenticationCoreManagerStatics
                    {
                        HRESULT CreateWebAccountMonitor([in] Windows.Foundation.Collections.IIterable<Windows.Security.Credentials.WebAccount*>* webAccounts, [out] [retval] Windows.Security.Authentication.Web.Core.WebAccountMonitor** result);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager)]
                    [uuid(54E633FE-96E0-41E8-9832-1298897C2AAF)]
                    interface IWebAuthenticationCoreManagerStatics4 : IInspectable
                        requires
                            Windows.Security.Authentication.Web.Core.IWebAuthenticationCoreManagerStatics
                    {
                        [overload("FindAllAccountsAsync")] HRESULT FindAllAccountsAsync([in] Windows.Security.Credentials.WebAccountProvider* provider, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.FindAllAccountsResult*>** operation);
                        [overload("FindAllAccountsAsync")] HRESULT FindAllAccountsWithClientIdAsync([in] Windows.Security.Credentials.WebAccountProvider* provider, [in] HSTRING clientId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.FindAllAccountsResult*>** operation);
                        [overload("FindSystemAccountProviderAsync")] HRESULT FindSystemAccountProviderAsync([in] HSTRING webAccountProviderId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccountProvider*>** operation);
                        [overload("FindSystemAccountProviderAsync")] HRESULT FindSystemAccountProviderWithAuthorityAsync([in] HSTRING webAccountProviderId, [in] HSTRING authority, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccountProvider*>** operation);
                        [overload("FindSystemAccountProviderAsync")] HRESULT FindSystemAccountProviderWithAuthorityForUserAsync([in] HSTRING webAccountProviderId, [in] HSTRING authority, [in] Windows.System.User* user, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.WebAccountProvider*>** operation);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager)]
                    [uuid(D07C1DED-270F-4554-9966-27B7DF05B965)]
                    interface IWebAuthenticationCoreManagerStatics5 : IInspectable
                    {
                        HRESULT AddAccountWithTransferTokenAsync([in] Windows.Security.Authentication.Web.Core.WebAuthenticationTransferTokenRequest* request, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Web.Core.WebAuthenticationAddAccountResult*>** operation);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationTransferTokenRequest)]
                    [uuid(7ACFA5B6-529D-5E76-9846-F3FD999304D0)]
                    interface IWebAuthenticationTransferTokenRequest : IInspectable
                    {
                        [propget] HRESULT WebAccountProvider([out] [retval] Windows.Security.Credentials.WebAccountProvider** value);
                        [propget] HRESULT TransferToken([out] [retval] HSTRING* value);
                        [propput] HRESULT TransferToken([in] HSTRING value);
                        [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** value);
                        [propget] HRESULT CorrelationId([out] [retval] HSTRING* value);
                        [propput] HRESULT CorrelationId([in] HSTRING value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebAuthenticationTransferTokenRequest)]
                    [uuid(5F16B627-04C4-5F0B-8683-8BAB58965656)]
                    interface IWebAuthenticationTransferTokenRequestFactory : IInspectable
                    {
                        HRESULT Create([in] Windows.Security.Credentials.WebAccountProvider* provider, [in] HSTRING transferToken, [out] [retval] Windows.Security.Authentication.Web.Core.WebAuthenticationTransferTokenRequest** value);
                        HRESULT CreateWithCorrelationId([in] Windows.Security.Credentials.WebAccountProvider* provider, [in] HSTRING transferToken, [in] HSTRING correlationId, [out] [retval] Windows.Security.Authentication.Web.Core.WebAuthenticationTransferTokenRequest** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebProviderError)]
                    [uuid(DB191BB1-50C5-4809-8DCA-09C99410245C)]
                    interface IWebProviderError : IInspectable
                    {
                        [propget] HRESULT ErrorCode([out] [retval] UINT32* value);
                        [propget] HRESULT ErrorMessage([out] [retval] HSTRING* value);
                        [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebProviderError)]
                    [uuid(E3C40A2D-89EF-4E37-847F-A8B9D5A32910)]
                    interface IWebProviderErrorFactory : IInspectable
                    {
                        HRESULT Create([in] UINT32 errorCode, [in] HSTRING errorMessage, [out] [retval] Windows.Security.Authentication.Web.Core.WebProviderError** webProviderError);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebTokenRequest)]
                    [uuid(B77B4D68-ADCB-4673-B364-0CF7B35CAF97)]
                    interface IWebTokenRequest : IInspectable
                    {
                        [propget] HRESULT WebAccountProvider([out] [retval] Windows.Security.Credentials.WebAccountProvider** value);
                        [propget] HRESULT Scope([out] [retval] HSTRING* value);
                        [propget] HRESULT ClientId([out] [retval] HSTRING* value);
                        [propget] HRESULT PromptType([out] [retval] Windows.Security.Authentication.Web.Core.WebTokenRequestPromptType* value);
                        [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** requestProperties);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebTokenRequest)]
                    [uuid(D700C079-30C8-4397-9654-961C3BE8B855)]
                    interface IWebTokenRequest2 : IInspectable
                    {
                        [propget] HRESULT AppProperties([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** requestProperties);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebTokenRequest)]
                    [uuid(5A755B51-3BB1-41A5-A63D-90BC32C7DB9A)]
                    interface IWebTokenRequest3 : IInspectable
                    {
                        [propget] HRESULT CorrelationId([out] [retval] HSTRING* value);
                        [propput] HRESULT CorrelationId([in] HSTRING value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebTokenRequest)]
                    [uuid(6CF2141C-0FF0-4C67-B84F-99DDBE4A72C9)]
                    interface IWebTokenRequestFactory : IInspectable
                    {
                        HRESULT Create([in] Windows.Security.Credentials.WebAccountProvider* provider, [in] HSTRING scope, [in] HSTRING clientId, [out] [retval] Windows.Security.Authentication.Web.Core.WebTokenRequest** webTokenRequest);
                        HRESULT CreateWithPromptType([in] Windows.Security.Credentials.WebAccountProvider* provider, [in] HSTRING scope, [in] HSTRING clientId, [in] Windows.Security.Authentication.Web.Core.WebTokenRequestPromptType promptType, [out] [retval] Windows.Security.Authentication.Web.Core.WebTokenRequest** webTokenRequest);
                        HRESULT CreateWithProvider([in] Windows.Security.Credentials.WebAccountProvider* provider, [out] [retval] Windows.Security.Authentication.Web.Core.WebTokenRequest** webTokenRequest);
                        HRESULT CreateWithScope([in] Windows.Security.Credentials.WebAccountProvider* provider, [in] HSTRING scope, [out] [retval] Windows.Security.Authentication.Web.Core.WebTokenRequest** webTokenRequest);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebTokenRequestResult)]
                    [uuid(C12A8305-D1F8-4483-8D54-38FE292784FF)]
                    interface IWebTokenRequestResult : IInspectable
                    {
                        [propget] HRESULT ResponseData([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Security.Authentication.Web.Core.WebTokenResponse*>** value);
                        [propget] HRESULT ResponseStatus([out] [retval] Windows.Security.Authentication.Web.Core.WebTokenRequestStatus* value);
                        [propget] HRESULT ResponseError([out] [retval] Windows.Security.Authentication.Web.Core.WebProviderError** value);
                        HRESULT InvalidateCacheAsync([out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebTokenResponse)]
                    [uuid(67A7C5CA-83F6-44C6-A3B1-0EB69E41FA8A)]
                    interface IWebTokenResponse : IInspectable
                    {
                        [propget] HRESULT Token([out] [retval] HSTRING* value);
                        [propget] HRESULT ProviderError([out] [retval] Windows.Security.Authentication.Web.Core.WebProviderError** value);
                        [propget] HRESULT WebAccount([out] [retval] Windows.Security.Credentials.WebAccount** value);
                        [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.Security.Authentication.Web.Core.WebTokenResponse)]
                    [uuid(AB6BF7F8-5450-4EF6-97F7-052B0431C0F0)]
                    interface IWebTokenResponseFactory : IInspectable
                    {
                        HRESULT CreateWithToken([in] HSTRING token, [out] [retval] Windows.Security.Authentication.Web.Core.WebTokenResponse** webTokenResponse);
                        HRESULT CreateWithTokenAndAccount([in] HSTRING token, [in] Windows.Security.Credentials.WebAccount* webAccount, [out] [retval] Windows.Security.Authentication.Web.Core.WebTokenResponse** webTokenResponse);
                        HRESULT CreateWithTokenAccountAndError([in] HSTRING token, [in] Windows.Security.Credentials.WebAccount* webAccount, [in] Windows.Security.Authentication.Web.Core.WebProviderError* error, [out] [retval] Windows.Security.Authentication.Web.Core.WebTokenResponse** webTokenResponse);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass FindAllAccountsResult
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IFindAllAccountsResult;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAccountEventArgs
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IWebAccountEventArgs;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAccountMonitor
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IWebAccountMonitor;
                        [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Security.Authentication.Web.Core.IWebAccountMonitor2;
                    }

                    [activatable(Windows.Security.Authentication.Web.Core.IWebAuthenticationAddAccountResponseFactory, Windows.Foundation.UniversalApiContract, 15.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass WebAuthenticationAddAccountResponse
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IWebAuthenticationAddAccountResponse;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebAuthenticationAddAccountResult
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IWebAuthenticationAddAccountResult;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [static(Windows.Security.Authentication.Web.Core.IWebAuthenticationCoreManagerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                    [static(Windows.Security.Authentication.Web.Core.IWebAuthenticationCoreManagerStatics2, Windows.Foundation.UniversalApiContract, 1.0)]
                    [static(Windows.Security.Authentication.Web.Core.IWebAuthenticationCoreManagerStatics3, Windows.Foundation.UniversalApiContract, 3.0)]
                    [static(Windows.Security.Authentication.Web.Core.IWebAuthenticationCoreManagerStatics4, Windows.Foundation.UniversalApiContract, 6.0)]
                    [static(Windows.Security.Authentication.Web.Core.IWebAuthenticationCoreManagerStatics5, Windows.Foundation.UniversalApiContract, 15.0)]
                    [threading(both)]
                    runtimeclass WebAuthenticationCoreManager
                    {
                    }

                    [activatable(Windows.Security.Authentication.Web.Core.IWebAuthenticationTransferTokenRequestFactory, Windows.Foundation.UniversalApiContract, 15.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass WebAuthenticationTransferTokenRequest
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IWebAuthenticationTransferTokenRequest;
                    }

                    [activatable(Windows.Security.Authentication.Web.Core.IWebProviderErrorFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebProviderError
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IWebProviderError;
                    }

                    [activatable(Windows.Security.Authentication.Web.Core.IWebTokenRequestFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass WebTokenRequest
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IWebTokenRequest;
                        [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.Security.Authentication.Web.Core.IWebTokenRequest2;
                        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Security.Authentication.Web.Core.IWebTokenRequest3;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass WebTokenRequestResult
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IWebTokenRequestResult;
                    }

                    [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                    [activatable(Windows.Security.Authentication.Web.Core.IWebTokenResponseFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass WebTokenResponse
                    {
                        [default] interface Windows.Security.Authentication.Web.Core.IWebTokenResponse;
                    }
                }
            }
        }
    }
}
