C++中使用BHO来屏蔽特定网站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 spCP; //获取访问WebBrowser事件的连接指针 hr = m_spCPC->FindConnectionPoint(DIID_DWebBrowserEvents2, &spCP); if (FAILED(hr)) return hr; //把事件处理程序传递给宿主程序Each time an event //每次有事件产生时,宿主程序都会调用我们实现的IDispatch接口的函数 hr = spCP->Advise(reinterpret_cast(this),&m_dwCookie); return hr; } 通过调用Advise *** ,告之浏览器BHO想要接受事件通知,这意味着BHO会把指向IDispatch的指针提供给浏览器(这是由于要进行组件事件处理),接下来,浏览器会调用IDispatch的Invoke *** ,并传递给它一个事件的ID作为参数,因此,BHO必须实现Invoke *** 以处理所发生的事件。 STDMETHODIMP CBhoApp::Invoke(DISPID dispidMember,REFIID riid, LCID lcid,WORD wFlags, DISPPARAMS *pDispParams,VARIANT *pvarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { //在使用ATL字符串转换宏(此处用的是OLE2T)防止编译错误时,必须先调用这个宏 USES_CONVERSION; if(dispidMember == DISPID_BEFORENAVIGATE2) { BSTR bstrUrlName; HRESULT hr = m_spWebBrowser2->get_LocationURL(&bstrUrlName);
对付企业来说,SEO凡是是企业营销人员首先想到的一个词,这是毋庸置疑的,但在实际事情中,并不是所有的企业业务都适合SEO。 这需要企业的营销人员有一个清晰的认识,不要在搜索引擎优化上投入太多的时间和资...
《我和狗狗的十个约定》这部电影讲述的是女主人公收养了一条流浪狗,并与它定下了十个约定。让观众明白的是人对宠物需要有爱和责任,狗狗的寿命只有短短的十几年,并且它的世界里只有你。 影片主人公是位十四岁的...
银川商务微信群【曹光琴】,上海市是一座成功者的集中地,对商业服务女学妹的要求也是较为大的,今日大牌明星商务共享女学妹访梦,年纪成都市 女 29,婚姻生活:单身,文凭:普通高中,气场:银川商务微信群找寻...
黑客要怎么找相关问题 零基础黑客自学需要多久相关问题 京东拉黑客户怎么恢复 通过微博反查手机号(微信号反查手机号)...
找黑客黑别人电脑要多少钱相关问题 破解手机通话记录的黑客软件相关问题 黑客一般会什么软件 黑客可以入侵qq空间吗(qq空间强行查看黑客)...
小说的三要素(什么是小说三要素梳理) 小说是以塑造人物的形象为中心,通过故事情节的叙述和环境的描写反映社会生活的一种文学体裁。小说的三要素是人物形象、故事情节和环境,三者中,人物是小说的核心,小说的...