1. IDispatch* pDisp = NULL;
  2. IDispatch* pDisp2 = NULL;
  3. IHTMLDocument2 *pHtmlDoc2 = NULL;
  4. IHTMLElementCollection* pCol;
  5. IHTMLMetaElement *pMeta = NULL;
  6. BSTR bUrl = NULL;
  7. BSTR bstr = NULL;
  8. try {
  9. if ((pDisp = m_WebBrowser.get_Document()) &&
  10. SUCCEEDED(pDisp->QueryInterface(IID_IHTMLDocument2,(PVOID*)&pHtmlDoc2))
  11. && SUCCEEDED(pHtmlDoc2->get_all( &pCol)) && pCol
  12. )
  13. {
  14. //检查域名是www.test.com或www.test2.com的域名下, meta标签是否有myflag标记, 如果有则认为是正确的网页bIsGoodWebPage为TRUE
  15. pHtmlDoc2->get_URL(&bUrl);
  16. if(wcsstr((const wchar_t*)bUrl, L"www.test.com") == NULL
  17. && wcsstr((const wchar_t*)bUrl, L"www.test2.com") == NULL)
  18. {
  19. bIsGoodWebPage = TRUE;
  20. }
  21. else
  22. {
  23. long eleLen = ;
  24. pCol->get_length(&eleLen);
  25. IHTMLMetaElement* pMetaElement = NULL;
  26. VARIANT varIndex;
  27. HRESULT hr;
  28. for( int i=; i< eleLen; i++)
  29. {
  30. VARIANT var2;
  31. varIndex.vt = VT_UINT;
  32. varIndex.lVal = i;
  33. VariantInit( &var2 );
  34. hr = pCol->item(varIndex, var2, &pDisp2);
  35. hr = pDisp2->QueryInterface(IID_IHTMLMetaElement,(void**)&pMeta);
  36. if( hr == S_OK)
  37. {
  38. if( SUCCEEDED(pMeta->get_httpEquiv(&bstr)) )
  39. {
  40. if(!wcscmp((const wchar_t*)bstr,L"keywords"))
  41. {
  42. bstr = NULL;
  43. if(SUCCEEDED(pMeta->get_content(&bstr)))
  44. {
  45. if(!wcscmp((const wchar_t*)bstr, L"myflag"))
  46. {
  47. bIsGoodWebPage = TRUE;
  48. break;
  49. }
  50. }
  51. }
  52. }
  53. }
  54. }
  55. }
  56. }
  57. }
  58. catch (...)
  59. {
  60. WBTRACE("Error\r\n");
  61. }
  62. SAFE_RELEASE(pMeta);
  63. SAFE_RELEASE(pDisp2);
  64. SAFE_RELEASE(pHtmlDoc2);
  65. SAFE_RELEASE(pDisp);

MFC webbrowser读取文档的meta分析的更多相关文章

  1. 解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题

    问题 一个用Spring建的java项目,在Eclipse或idea中运行正常,为什么打包后运行出现如下错误呢? 2019/07/10/19:04:07 WARN [main] org.springf ...

  2. MFC设置单文档保存格式以及标题

    在使用MFC编写单文档程序时,有时候需要将编辑的内容序列化为文件,使该文件可以直接以自己的程序打开,这时候需要在保存时将文件后缀改为我们想要的格式. 步骤 打开String Table,找到IDR_M ...

  3. 12.1 文档相关 Webbrowser 该文档已被修改,是否保存修改结果

       附件:http://files.cnblogs.com/xe2011/Webbrowser_Document_IsModified.rar   该文档已被修改,是否保存修改结果?是:保存修改结果 ...

  4. golang mongodb (mgo)插入或读取文档的字段值为空(nil)问题解决

    问题描述 当使用mgo操作mongodb时,遇到数据插入正常,但是在数据库查看时只能看到objectid被插入了:读取的时候,可以查询到记录,但是读入对象时,却所有的值均为0或者空的情况. mongo ...

  5. 关于css浮动框是否脱离文档流的分析

    在了解浮动属性之前,首先我们先了解一下html中关于display属性的相关知识. display属性常用的有inline, block, inline-block. inline也就是内联的意思. ...

  6. 基于MFC的单文档,多文档,对话框应用程序

    从类的角度区分: 基于对话框(3个类): CAboutDlg 程序名App 程序名Dlg 单文档(5个类): CAboutDlg CMainFrame 程序名App 程序名Doc 程序名View 多文 ...

  7. MFC 修改 单文档 SDI 窗体 标题

    程序主窗口标题栏的一般形式为: 文档标题—主窗口标题 1.修改文档标题 修改CExamDoc::onNewDocument()函数为: BOOL CExamDoc::OnNewDocument() { ...

  8. MFC 视图、文档、框架(通讯)

    CMainFrame * pMainWnd=(CMainFrame*)AfxGetApp()->m_pMainWnd;//主框架 CChildFrame * pChild = (CChildFr ...

  9. Arc Engiene读取文档的属性

    设计界面 创建类 代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

随机推荐

  1. android 第一个程序的编写

    移通152余继彪 需求分析:输入两个数字,让他们相乘,然后得出结果 首先建立一个android项目 在 layout中建立第一个界面 该界面有四个组件,两个editText 一个TextView,一个 ...

  2. 初学者SQL语句介绍

    初学者SQL语句介绍      1.用 Select 子句检索记录    Select 子句是每一个检索数据的查询核心.它告诉数据库引擎返回什么字段.    Select 子句的常见形式是:    S ...

  3. Service中事务不能回滚的解决方式(转)

    1.在service方法里面如果对异常进行了捕获的话,该事务是不会进行回滚的        默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚.          spr ...

  4. Python使用CGIHTTPServer调用shell作为cgi脚本

    #!/bin/bash echo "Content-Type:text/html" echo "" echo "hello world!" ...

  5. RFID Hacking④:使用ProxMark3 破解门禁

    文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用! 0×00 前言 国际黑客大会Defcon传统之一:开锁!因为黑客认为锁也是一种安全挑战.我们在黑客题材电影.电视剧中也常常 ...

  6. php大力力 [037节] Iconfont-阿里巴巴矢量图标库

    Iconfont-阿里巴巴矢量图标库 从此不求人:自主研发一套PHP前端开发框架 Iconfont-中国第一个最大且功能最全的矢量图标库,提供矢量图标下载.在线存储.格式转换等功能.阿里巴巴体验团队倾 ...

  7. Unity3D DllNotFoundException/System.DllNotFoundException

    Unity System.DllNotFoundException Unity Fallback handler could not load library D:/91yGame/SparrowCD ...

  8. Filco minila 的蛋疼。

    3494左shift坏了,期间邮寄厂家维修,就把尘封多年的minila拿出来用着. 最为人诟病的问题:蓝亚适配,与mac跟iphone都能快速的匹配连接上.但是对于我的dell vestro 2012 ...

  9. 解决ListView和ScrollView同时使用时滑动的冲突问题

    ScrollView外面包裹了一个ListView,解决其滑动冲突问题: 只需自定义ListView,命名MyListView: public class MyListView extends Lis ...

  10. c语言scanf返回值

    1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果 ...