//+------------------------------------------------------------------------- // // 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 ); };