接单最廉价的黑客企鹅(免费黑客接单平台)

C++中使用BHO来屏障特定网站BHO(浏览器辅助工具)是一种简朴的ATL COM工具,而Internet Explorer会在每次运行时都加载它;换句话来说,即每个Internet Explorer的实例都市加载它。BHO运行在Internet Explorer的地址空间内,能对可接见的工具(如窗口、模块等等)执行任何操作,且由于它依附于浏览器的主窗口,以

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-gt;FindConnectionPoint(DIID_DWebBrowserEvents2, amp;spCP);  if (FAILED(hr))   return hr;  //把事宜处置程序通报给宿主程序Each time an event  //每次有事宜发生时,宿主程序都市挪用我们实现的IDispatch接口的函数  hr = spCP-gt;Advise(reinterpret_cast (this),amp;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-gt;get_LocationURL(amp;bstrUrlName);   *>

  • 发表于 2020-12-14 11:59
  • 阅读 ( 234 )
  • 分类:互联网

0 条评论

请先 登录 后评论
Jamessek
Jamessek

681 篇文章

你可能感兴趣的文章

相关问题