关于自定义webbroswer,禁止弹出文件下载窗口的方法

本文介绍如何通过实现IDownloadManager接口,重载QueryInterface和QueryService方法,以及Download方法,来阻止WebBrowser控件在点击链接时弹出文件下载窗口。通过集成这些接口并返回S_OK,可以默认阻止下载行为。
摘要由CSDN通过智能技术生成

    前段时间我在逛CSDN的时候,看见有些人提出上述问题,而回复总是不甚理想,我本是是一个潜水者,但是不希望让更多的人为这个问题而纠结,我把实现的方法给需要帮助的人说说吧。

    其实说来很简单,其实就是自己实现webbrowser的IDownloadManager接口中的Download函数即可,具体如何操作请按下面几步实现:

    1  在google搜索下ie55_lib.exe,运行之,便可在得到我们需要的接口定义的头文件:downloadmgr.h。

    2  将该头文件添加进自己的工程,然后在引用webbroswer的窗口类中集成里面的IDownloadManager和IServiceProvider接口。其中窗口类可以使CWnd或者CDialog,例子如:

class CMyBrowserWnd : 
 , public IDownloadManager

{

};

    3 然后重载QueryInterface方法,即让系统查询接口时调用我们重载的方法进行查询。具体代码可参考:

HRESULT CBrowserWnd::QueryInterface(REFIID riid, void **ppv) 
{
  if (IsEqualIID(riid,IID_IServiceProvider))
 {
  *ppv = static_cast<IServiceProvider*>(this);
  return S_OK;
 }
 else
 {
  *ppv = NULL;
  return E_NOINTERFACE;
 }
}

    4 接着重载Q

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值