//***************************************************************************** 
// 
// Microsoft Windows Media 
// Copyright (C) Microsoft Corporation. All rights reserved. 
//
// FileName:            wmsproxy.idl
//
// Abstract:
//
//*****************************************************************************

cpp_quote("//*****************************************************************************") 
cpp_quote("//") 
cpp_quote("// Microsoft Windows Media") 
cpp_quote("// Copyright (C) Microsoft Corporation. All rights reserved.") 
cpp_quote("//")
cpp_quote("// Automatically generated by Midl from wmsproxy.idl" )
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 "objidl.idl";
import "wmscontext.idl";

interface IWMSProxyContext;

cpp_quote( "EXTERN_GUID( IID_IWMSProxyContext,        0x2E34AB85,0x0D3D,0x11d2,0x9E,0xEE,0x00,0x60,0x97,0xD2,0xD7,0xCF );" )

[
    object,
    pointer_default(unique),
    uuid(2E34AB85-0D3D-11d2-9EEE-006097D2D7CF),
    version(9.0),
    helpstring("Provides methods to discover upstream proxy settings and credentials to facilitate cache proxy binding.")
]
interface IWMSProxyContext : IUnknown
{
    //
    // The FindProxyForURL function is used to dynamically determine the proxy settings that will be
    // used for a connection.
    //
    // To indicate that a proxy should be used:
    //      - Return S_OK and set pbstrProxyServer and pdwProxyPort with the desired settings.
    //
    // To indicate that a proxy should not be used:
    //      - Return S_OK and set pbstrProxyServer to NULL or an empty string.
    //
    // To indicate that the default proxy settings should be used:
    //      - Return S_FALSE or any other error code.
    //
    [helpstring("Retrieves the name and port number of an upstream proxy server.")] HRESULT 
    FindProxyForURL( 
        [in] IWMSContext *pUserContext,
        [in] BSTR bstrUrl,
        [out] BSTR *pbstrProxyServer,
        [out] DWORD *pdwProxyPort);

    [helpstring("Retrieves the user name and password that is used to respond to a security challenge from an upstream proxy server.")] HRESULT 
    GetCredentials( 
        [in] IWMSContext *pUserContext,
        [in] BSTR bstrRealm,
        [in] BSTR bstrUrl,
        [out] BSTR *pbstrName,
        [out] BSTR *pbstrPassword);
};



