当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>C++中利用BHO来屏蔽特定网站</b>[VC/C++编程]

赞助商链接



  本文“<b>C++中利用BHO来屏蔽特定网站</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

BHO(浏览器帮助对象)是一种简单的ATL COM对象,而Internet Explorer会在每次运行时都加载它;换句话来说,即每个Internet Explorer的实例城市加载它.BHO运行在Internet Explorer的地址空间内,能对可拜候的对象(如窗口、模块等等)履行任何操作,且因为它依靠于浏览器的主窗口,所以其生命期与浏览器实例的生命期一致.

假如在系统中翻开了活动桌面,BHO也能伴随Windows Explorer一同启动.假如不想在Windows Explorer中运行BHO,可将以下代码增添到DLLMain中:

TCHAR strLoader[MAX_PATH];
::GetModuleFileName (NULL, strLoader, MAX_PATH);
if(stricmp("explorer.exe", strLoader) == 0)
return FALSE;
  BHO的COM Server必须实现IObjectWithSite,以便对象可以挂钩到浏览器事件,Internet Explorer会依靠IObjectWithSite将一个指针传送到它的IUnknown接口,所以,只需实现IObjectWithSite的SetSite办法就行了,以下所示:

STDMETHODIMP CBhoApp::SetSite(IUnknown *pUnkSite)
{
 //获得并存储IWebBrowser2指针
 m_spWebBrowser2 = pUnkSite;
 if (m_spWebBrowser2 == NULL)
  return E_INVALIDARG;
 //获得并存储IConnectionPointerContainer指针
 m_spCPC = m_spWebBrowser2;
 if (m_spCPC == NULL)
  return E_POINTER;
 //衔接到宿主程序以接纳事件告诉
 return Connect();
}
  以下是Connect函数对比简单的实现:

HRESULT CBhoApp::Connect()
{
 HRESULT hr;
 CComPtr<IConnectionPoint> spCP;
 //获得拜候WebBrowser事件的衔接指针
 hr = m_spCPC->FindConnectionPoint(DIID_DWebBrowserEvents2, &spCP);
 if (FAILED(hr))
  return hr;
 //把事件处理程序传送给宿主程序Each time an event
 //每次有事件产生时,宿主程序城市调用我们实现的IDispatch接口的函数
 hr = spCP->Advise(reinterpret_cast<IDispatch*>(this),&m_dwCookie);
 return hr;
}
  通过调用Advise办法,告之浏览器BHO想要承受事件告诉,这意味着BHO会把指向IDispatch的指针供应应浏览器(这是由于要举行组件事件处理),接下来,浏览器会调用IDispatch的Invoke办法,并传送给它一个事件的ID作为参数,因此,BHO必须实现Invoke办法以处理所发生的事件.


  以上是“<b>C++中利用BHO来屏蔽特定网站</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .