You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
183 lines
6.9 KiB
183 lines
6.9 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows Media Technologies
|
|
// Copyright (C) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// File: authen.idl
|
|
//
|
|
// Contents:
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
cpp_quote("//+-------------------------------------------------------------------------")
|
|
cpp_quote("//")
|
|
cpp_quote("// Microsoft Windows Media Technologies")
|
|
cpp_quote("// Copyright (C) Microsoft Corporation. All rights reserved.")
|
|
cpp_quote("//")
|
|
cpp_quote("// Automatically generated by Midl")
|
|
cpp_quote("//")
|
|
cpp_quote("// DO NOT EDIT THIS FILE.")
|
|
cpp_quote("//")
|
|
cpp_quote("//--------------------------------------------------------------------------")
|
|
|
|
cpp_quote("#if _MSC_VER > 1000")
|
|
cpp_quote("#pragma once")
|
|
cpp_quote("#endif // _MSC_VER > 1000")
|
|
|
|
import "oaidl.idl";
|
|
|
|
import "WMSContext.idl";
|
|
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSAuthenticationPlugin , 0xBE185FF9,0x6932,0x11d2,0x8B,0x3B,0x00,0x60,0x97,0xB0,0x12,0x06 );" )
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSAuthenticationContext , 0xBE185FFA,0x6932,0x11d2,0x8B,0x3B,0x00,0x60,0x97,0xB0,0x12,0x06 );" )
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSAuthenticationCallback , 0xBE185FFB,0x6932,0x11d2,0x8B,0x3B,0x00,0x60,0x97,0xB0,0x12,0x06 );" )
|
|
|
|
interface IWMSAuthenticationPlugin;
|
|
interface IWMSAuthenticationContext;
|
|
interface IWMSAuthenticationCallback;
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
object,
|
|
uuid(BE185FF9-6932-11d2-8B3B-006097B01206),
|
|
version(9.0),
|
|
pointer_default(unique),
|
|
helpstring("Provides methods for retrieving information about an authentication plugin and for accessing the plug-ins IWMSAuthenticationContext object.")
|
|
]
|
|
interface IWMSAuthenticationPlugin : IUnknown
|
|
{
|
|
|
|
typedef [public] enum WMS_AUTHENTICATION_FLAGS
|
|
{
|
|
WMS_AUTHENTICATION_TEXT_CHALLENGE = 0x01,
|
|
WMS_AUTHENTICATION_CLIENT_SHOWS_UI = 0x02,
|
|
WMS_AUTHENTICATION_ANONYMOUS = 0x04,
|
|
WMS_AUTHENTICATION_CHALLENGE_FIRST = 0x08,
|
|
|
|
} WMS_AUTHENTICATION_FLAGS;
|
|
|
|
//
|
|
// Find out the authentication plugin's package name.
|
|
//
|
|
[helpstring("Called by the server to retrieve the name of the authentication plug-in package.")] HRESULT
|
|
GetPackageName( [out,retval] BSTR *pbstrPackageName );
|
|
|
|
//
|
|
// Find out the protocol supported by this authentication response plugin.
|
|
// Examples include "Basic", "NTLM", "Digest", "Kerberos", etc...
|
|
//
|
|
[helpstring("Called by the server to retrieve the name of the protocol used by the authentication plug-in.")] HRESULT
|
|
GetProtocolName( [out,retval] BSTR *pbstrProtocolName );
|
|
|
|
//
|
|
// Flags come from WMS_AUTHENTICATION_FLAGS enum list
|
|
//
|
|
[helpstring("Called by the server to retrieve flags that indicate the credential acquisition support provided by the plug-in.")] HRESULT
|
|
GetFlags( [out,retval] long *plFlags );
|
|
|
|
//
|
|
// Create an authentication context which will be used by one session
|
|
//
|
|
[helpstring("Called by the server to retrieve an authentication context object.")] HRESULT
|
|
CreateAuthenticationContext( [out,retval] IWMSAuthenticationContext **ppAuthenCtx );
|
|
};
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
object,
|
|
uuid(BE185FFA-6932-11d2-8B3B-006097B01206),
|
|
version(9.0),
|
|
pointer_default(unique),
|
|
helpstring("Provides methods that are used to authenticate a client.")
|
|
]
|
|
interface IWMSAuthenticationContext : IUnknown
|
|
{
|
|
//
|
|
// Get a pointer to the authentication plugin that implements this context
|
|
//
|
|
[helpstring("Called by the server to retrieve a pointer to the authentication plug-in that created this authentication context.")] HRESULT
|
|
GetAuthenticationPlugin(
|
|
[out,retval] IWMSAuthenticationPlugin **ppAuthenPlugin );
|
|
|
|
//
|
|
// Authenticate is the workhorse method that gets invoked one or more
|
|
// times throughout an authentication challenge/response sequence
|
|
//
|
|
[helpstring("Called by the server to verify client credentials.")] HRESULT
|
|
Authenticate(
|
|
[in] VARIANT ResponseBlob,
|
|
[in] IWMSContext *pUserCtx,
|
|
[in] IWMSContext *pPresentationCtx,
|
|
[in] IWMSCommandContext *pCommandContext,
|
|
[in] IWMSAuthenticationCallback *pCallback,
|
|
[in] VARIANT Context );
|
|
|
|
//
|
|
// Get the logical user ID (only works if authentication has succeeded).
|
|
//
|
|
[helpstring("Called by the server to retrieve the logical user ID if authentication succeeds.")] HRESULT
|
|
GetLogicalUserID( [out,retval] BSTR *pbstrUserID );
|
|
|
|
//
|
|
// Get the name of the NT security user/group account that this context
|
|
// impersonates (only works if authentication has succeeded).
|
|
//
|
|
[helpstring("Called by the server to retrieve the name of the user account or group associated with this authentication context.")] HRESULT
|
|
GetImpersonationAccountName( [out,retval] BSTR *pbstrAccountName );
|
|
|
|
//
|
|
// Get the handle of the NT security user/group account that this context
|
|
// impersonates (only works if authentication has succeeded).
|
|
//
|
|
[helpstring("Called by the server to retrieve an impersonation access token for the user account associated with this authentication context.")] HRESULT
|
|
GetImpersonationToken( [out,retval] long *plToken );
|
|
};
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
object,
|
|
uuid(BE185FFB-6932-11d2-8B3B-006097B01206),
|
|
version(9.0),
|
|
pointer_default(unique),
|
|
helpstring("Provides a method to notify the server of the results of an authentication request.")
|
|
]
|
|
interface IWMSAuthenticationCallback : IUnknown
|
|
{
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Authentication return codes
|
|
//
|
|
typedef [public] enum WMS_AUTHENTICATION_RESULT
|
|
{
|
|
WMS_AUTHENTICATION_SUCCESS = 0x01,
|
|
WMS_AUTHENTICATION_DENIED = 0x02,
|
|
WMS_AUTHENTICATION_CONTINUE = 0x03,
|
|
WMS_AUTHENTICATION_ERROR = 0x04
|
|
|
|
} WMS_AUTHENTICATION_RESULT;
|
|
|
|
//
|
|
// Called as a result of the context's Authenticate method completing.
|
|
//
|
|
[helpstring("Called by the plug-in to respond when the server calls IWMSAuthenticationContext::Authenticate.")] HRESULT
|
|
OnAuthenticateComplete(
|
|
[in] WMS_AUTHENTICATION_RESULT AuthResult,
|
|
[in] VARIANT ChallengeBlob,
|
|
[in] VARIANT Context );
|
|
|
|
};
|
|
|
|
|