实现自定义的下载

       实现自定义的下载

       IE5.5开始,IE允许用户自定义下载。这个功能允许你通过实现一个COM对象来处理文件下载过程和自定义用户界面,以此来扩展IE或浏览器程序的功能。

       要实现自定义的下载,必需创建一个支持IDownloadManager接口的COM对象,IDownloadManager接口仅有一个方法:IDownloadManager::Download该方法在IE或浏览器程序要下载文件时调用。

       有两种方法可以让IE或浏览器程序访问IDownloadManager接口:

1、实现IServiceProvider接口,浏览器程序通过调用IServiceProvider::QueryService方法来得到IDownloadManager指针,可以参考下面QueryService方法实现的例子:

STDMETHODIMP CServiceProvider::QueryService(REFGUID guidService,

                                            REFIID riid,

                                            void **ppv)

{

    HRESULT hr = E_NOINTERFACE;

 

    if (guidService == SID_SDownloadManager &&   riid== IID_IDownloadManager)

 

   {

        // Create new CDownloadMgr object using ATL.

        CComObject<CDownloadMgr>* pDownloadMgr;

        hr = CComObject<CDownloadMgr>::CreateInstance(&pDownloadMgr);

       

        // Query the new CDownloadMgr object for IDownloadManager interface.

        hr = pDownloadMgr->QueryInterface(IID_IDownloadManager, ppv);

    }

 

    return hr;

}

 

2、对于IE6或更高版本,IE或浏览器程序通过检查HKEY_CURRENT_USER或者HKEY_LOCAL_MACHINE/Software/Microsoft/Internet Explorer/Downlo-

adUI键下是否存在包含下载管理对象的CLSID的子键。

 

IDownloadManager::Download

HRESULT Download(IMoniker *pmk,

    IBindCtx *pbc,

    DWORD dwBindVerb,

    LONG grfBINDF,

    BINDINFO *pBindInfo,

    LPCOLESTR pszHeaders,

    LPCOLESTR pszRedir,

    UINT uiCP

)

{

CComBSTR bsUrl ;

pmk->GetDisplayName( pbc , NULL , &bsUrl ) ;

// 下载url

return S_OK ;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
源代码推荐——VB实现IE下载管理器扩展 ------ 摘要 这个例子演示了如何实现一个自定义IE下载管理器,当IE下载一个文件,VBWebDownloader.exe就会启动来下载它。 (这个项目支持断点续传,而且代码相对简单) 注意:一些第三方的IE下载扩展可能会和这个例子程序冲突,所以在尝试这个例子之前最好临时屏蔽它们。 安装/卸载 A. 安装 对于32bit系统,或者32bit IE运行在54bit系统,安装 VBIEDownloadManagerSetup(x86) 项目输出的VBIEDownloadManagerSetup(x86).msi。对于 64bit IE安装 VBIEDownloadManagerSetup(x64) 项目输出的 VBIEDownloadManagerSetup(x64).msi。 B. 卸载 运行安装时候所用的那个安装程序,并且选择卸载。 演示:(不翻译了,自己看吧) Step1. Open this project in VS2010 and set the platform of the solution to x86. Make sure that the projects VBIEDownloadManagerSetup, VBWebDownloader and VBIEDownloadManagerSetup(x86) are selected to build in Configuration Manager. NOTE: If you want to run this sample in 64bit IE, set the platform to x64 and select VBIEDownloadManagerSetup, VBWebDownloader and VBIEDownloadManagerSetup(x64) to build. Step2. 生成解决方案 Step3. Right click the project VBIEDownloadManagerSetup(x86) in Solution Explorer, and choose "Install". Step4. Open 32bit IE and visit the the download link of Microsoft .NET Framework 4 http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7. Click the "Download" button on this page, and then VBWebDownloader.exe will be launched. In VBWebDownloader.exe, you will find that the url is http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe and the local path is D:\dotNetFx40_Full_x86_x64.exe Step5. Click the button "Download" in VBWebDownloader.exe, it will start to download the file, and after a few minutes, you will find a file D:\dotNetFx40_Full_x86_x64.exe in Windows Explorer. 下载: http://code.msdn.microsoft.com/VBIEDownloadManager-3287b087
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值