在事件DownloadComplete上访问HTML源代码
Accessing HTML source on event DownloadComplete?
我正在研究一个广告/弹出窗口拦截器BHO,我试图从事件"downloadcomplete"访问一个网站的html,所以我可以过滤所有的广告和恶意uri。
我的代码看起来像这样:
case DISPID_DOWNLOADCOMPLETE:
{
if(iBrowser) //IWebBrowser2*
{
HRESULT hr;
IUnknown *pUnkBrowser = NULL;
hr = iBrowser->QueryInterface(IID_IUnknown, (void**)&pUnkBrowser);
if( SUCCEEDED(hr) && pUnkBrowser!=NULL)
{
if( SUCCEEDED(hr) )
{
IDispatch* pHtmlDocDispatch = NULL;
IHTMLDocument2 * pHtmlDoc = NULL;
hr = iBrowser->get_Document (&pHtmlDocDispatch);
if (SUCCEEDED (hr) && (pHtmlDocDispatch != NULL))
{
hr = pHtmlDocDispatch->QueryInterface (IID_IHTMLDocument2, (void**)&pHtmlDoc);
if (SUCCEEDED (hr) && (pHtmlDoc != NULL))
{
IHTMLElement *pBody = 0;
pHtmlDoc->get_body( &pBody );
// I want to get the html here and filter out the ads but pBody is always null
if(pHtmlDoc) pHtmlDoc->Release();
}
if(pHtmlDocDispatch) pHtmlDocDispatch->Release();
}
}
if(pUnkBrowser) pUnkBrowser->Release();
}
}
return S_OK;
}
break;
我如何从这个事件访问和修改html ?
错误的事件,你可以在DocumentComplete上"play" dom,而不是DownloadComplete。
我还建议你使用CComPtr,这样你就不需要在每个接口上调用release()
相关文章:
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 难以理解某些人解决IOI问题的源代码
- 使用g++编译hdf5源代码
- 如何使用C++读取另一个程序中的源代码输出
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- C++出现控制台错误.我无法识别源代码的问题
- 简单的 HTML 验证器
- Qt Quick,如何更改 Ui 源代码?
- 如何在 html 页面中插入 cgi 应用程序的输出?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 从macOS Catalina上的源代码编译LLVM(如何解决未找到"stdio.h")
- 如何使用QT创建器获取网页源代码?
- 无法从源代码生成 doxygen chm/html 输出
- 动态分配内存,用于存储使用 WinHttpReadData 下载的 HTML 源代码
- 导出 html 时,组织模式无法突出显示C++源代码
- 有什么工具可以将c/c++源代码转换为html吗?
- 在事件DownloadComplete上访问HTML源代码