IDispatch* pDisp = NULL;
IDispatch* pDisp2 = NULL;
IHTMLDocument2 *pHtmlDoc2 = NULL;
IHTMLElementCollection* pCol;
IHTMLMetaElement *pMeta = NULL;
BSTR bUrl = NULL;
BSTR bstr = NULL;
try {
if ((pDisp = m_WebBrowser.get_Document()) &&
SUCCEEDED(pDisp->QueryInterface(IID_IHTMLDocument2,(PVOID*)&pHtmlDoc2))
&& SUCCEEDED(pHtmlDoc2->get_all( &pCol)) && pCol
)
{
//检查域名是www.test.com或www.test2.com的域名下, meta标签是否有myflag标记, 如果有则认为是正确的网页bIsGoodWebPage为TRUE
pHtmlDoc2->get_URL(&bUrl);
if(wcsstr((const wchar_t*)bUrl, L"www.test.com") == NULL
&& wcsstr((const wchar_t*)bUrl, L"www.test2.com") == NULL)
{
bIsGoodWebPage = TRUE;
}
else
{
long eleLen = ;
pCol->get_length(&eleLen);
IHTMLMetaElement* pMetaElement = NULL;
VARIANT varIndex;
HRESULT hr;
for( int i=; i< eleLen; i++)
{
VARIANT var2;
varIndex.vt = VT_UINT;
varIndex.lVal = i;
VariantInit( &var2 );
hr = pCol->item(varIndex, var2, &pDisp2);
hr = pDisp2->QueryInterface(IID_IHTMLMetaElement,(void**)&pMeta);
if( hr == S_OK)
{
if( SUCCEEDED(pMeta->get_httpEquiv(&bstr)) )
{
if(!wcscmp((const wchar_t*)bstr,L"keywords"))
{
bstr = NULL;
if(SUCCEEDED(pMeta->get_content(&bstr)))
{
if(!wcscmp((const wchar_t*)bstr, L"myflag"))
{
bIsGoodWebPage = TRUE;
break;
}
}
}
}
}
}
}
}
}
catch (...)
{
WBTRACE("Error\r\n");
}
SAFE_RELEASE(pMeta);
SAFE_RELEASE(pDisp2);
SAFE_RELEASE(pHtmlDoc2);
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. 跑马灯标记marquee

    常见属性: direction:滚动方向(left默)/right/up/down; behavior:滚动方式(scroll默)/slide/alternate来回弹动: width.height. ...

  2. jetty启动不能保存

    主要原因是jetty缓存的静态页面不能被修改.只需要在web.xml文件中配置如下: <servlet>    <!-- Override init parameter to avo ...

  3. 从0到1---“保多多”APP的开发(一)

    2015年8月份,我正式接手了公司保多多APP的开发(和另一个同事一起). 我之前并没有过从0开始创建一款APP,这次能有这样的机会,实在让我感到兴奋.因为我相信,作为这款APP的主要开发人员,在这一 ...

  4. AngularJs的UI组件ui-Bootstrap分享(五)——Pager和Pagination

    ui-bootstrap中有两个分页控件,一个是轻量级的Pager,只有上一页和下一页的功能,另一个是功能完整的Pagination,除了上一页和下一页,还可以选择首页和最后页,并且支持多种页数的显示 ...

  5. JS rem 设置

    (function () { var docEl = document.documentElement; var resize = 'orientationchange' in window ? 'o ...

  6. linux上安装php+gd扩展

    515 cd zlib-1.2.3 516 ./configure --prefix=/usr/local/zlib2 517 make && make install 518 cd ...

  7. React Native的组件ListView

    React Native的组件ListView类似于iOS中的UITableView和UICollectionView,也就是说React Native的组件ListView既可以实现UITableV ...

  8. mysql给其他用户权限访问我的数据库

    先执行这条语句,给用户权限 grant all privileges on *.* to root@"221.221.185.23" identified by "gyr ...

  9. JAVA修饰符类型(public,protected,private,friendly)

    转自:http://www.cnblogs.com/webapplee/p/3771708.html JAVA修饰符类型(public,protected,private,friendly) publ ...

  10. codeforces195a

    link:http://codeforces.com/problemset/problem/336/A 很简单的一道题目,当初有个单词不认识,isosceles原来意思是等腰的o(╯□╰)o #inc ...