//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//

cpp_quote("//")
cpp_quote("// Copyright (c) Microsoft Corporation.  All rights reserved.")
cpp_quote("//")
cpp_quote("//")
cpp_quote("// Use of this source code is subject to the terms of the Microsoft end-user")
cpp_quote("// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.")
cpp_quote("// If you did not accept the terms of the EULA, you are not authorized to use")
cpp_quote("// this source code. For a copy of the EULA, please see the LICENSE.RTF on your")
cpp_quote("// install media.")
cpp_quote("//")
cpp_quote("")
cpp_quote("#pragma comment(lib,\"uuid.lib\")")
cpp_quote("")
cpp_quote("//---------------------------------------------------------------------------=")
cpp_quote("// Internet Explorer Download Manager Interfaces")
cpp_quote("")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// GUIDS")
cpp_quote("// --------------------------------------------------------------------------------")
cpp_quote("// {988934A4-064B-11D3-BB80-00104B35E7F9}")
cpp_quote("DEFINE_GUID(IID_IDownloadManager, 0x988934a4, 0x064b, 0x11d3, 0xbb, 0x80, 0x0, 0x10, 0x4b, 0x35, 0xe7, 0xf9);")
cpp_quote("#define SID_SDownloadManager IID_IDownloadManager")

#ifndef DO_NO_IMPORTS
import "unknwn.idl";
import "ocidl.idl";
import "oleidl.idl";
import "oaidl.idl";
import "urlmon.idl";
#endif


interface IDownloadManager;
[
    helpstring("IDownloadManager interface"),
    object,
    uuid(988934A4-064B-11D3-BB80-00104B35E7F9), // IID_IDownloadManager
    pointer_default(unique),
    local
]
interface IDownloadManager : IUnknown
{
    HRESULT Download(
        [in] IMoniker *pmk,         // Identifies the object to be downloaded
        [in] IBindCtx *pbc,         // Stores information used by the moniker to bind 
        [in] DWORD dwBindVerb,      // The action to be performed during the bind
        [in] LONG grfBINDF,         // Determines the use of URL encoding during the bind
        [in] BINDINFO *pBindInfo,   // Used to implement IBindStatusCallback::GetBindInfo
        [in] LPCOLESTR pszHeaders,  // Additional headers to use with IHttpNegotiate
        [in] LPCOLESTR pszRedir,    // The URL that the moniker is redirected to
        [in] UINT uiCP              // The code page of the object's display name
    );
};



