小弟用WebBrowser控件做了个简洁浏览器,现在需要禁止ie本身自带的下载管理器改用自定义下载管理器,不知如何实现,请高手赐教!谢谢!

解决方案 »

  1.   

    网上说要实现IDownloadManager接口的Download方法,请问如何实现?在哪实现?
      

  2.   

    http://msdn.microsoft.com/en-us/library/ms533689.aspx
      

  3.   

    你可以看http://blog.csdn.net/breaksoftware/article/details/7104632,我这儿主要是为了实现IInternetSecurityManager一些功能,你将我工程中IInternetSecurityManager相关的地方换成IDownloadManager,然后把我实现的IInternetSecurityManager的ProcessUrlAction函数换成IInternetSecurityManager的Download函数实现,然后在STDMETHODIMP CBrowserHost::QueryService中这么写
     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;
    我觉得只要没搞错这些,,功能就应该可以实现了。
      

  4.   

    谢谢Breaksoftware,您的方法是写一个com实现IDownloadManager吧。小弟不才,对com不是很熟,不知道在我写的浏览器里该怎么调用呢?可以麻烦您讲解一下吗?谢谢!
      

  5.   

    也谢谢zhaozidong86,
    谢谢你的回答,不过小弟不才,不能看懂您给出的方法。
      

  6.   

    看下http://www.codeproject.com/Articles/10368/An-ATL-control-for-hosting-and-customization-of-mu
      

  7.   

    谢谢两位大哥,问题我已经解决,不过没用到com,希望有时间继续学习com。结贴给分——