社区
HTML/XML
帖子详情
如何通过IHTMLDocument2接口获取网页中的meta信息
sblsongdongf
2006-02-13 08:45:10
VC 7.0环境, IE
...全文
216
2
打赏
收藏
如何通过IHTMLDocument2接口获取网页中的meta信息
VC 7.0环境, IE
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
蒋晟
2006-02-14
打赏
举报
回复
HRESULT TBaseWebBrowserPageletCtrl::GetMetaCollection(IHTMLElementCollection** pCollec, IHTMLDocument2* pDocument)
{
CComPtr<IDispatch> lDispatch;
CComQIPtr<IHTMLDocument2> lDocument;
HRESULT lResult;
if (pDocument == NULL)
{
if (!m_BrowserTree)
return E_FAIL;
lResult = m_BrowserTree->get_Document(&lDispatch);
lDocument = lDispatch;
lDispatch = NULL;
ASSERT(SUCCEEDED(lResult) && lDocument);
if (FAILED(lResult) || (lDocument == NULL))
return E_FAIL;
}
else
{
lDocument = pDocument;
}
CComPtr<IHTMLElementCollection> lCollec;
lResult = lDocument->get_all(&lCollec);
ASSERT(SUCCEEDED(lResult) && lCollec);
if (FAILED(lResult) || (lCollec == NULL))
return E_FAIL;
lResult = lCollec->tags(CComVariant("META"), &lDispatch);
return lDispatch->QueryInterface(pCollec);
}
HRESULT TBaseWebBrowserPageletCtrl::CheckMetaTags()
{
CComQIPtr<IHTMLElementCollection> lCollec;
CComQIPtr<IHTMLMetaElement> lMetaElement;
CComPtr<IDispatch> lDispatch;
HRESULT lResult;
long lIndex = 0;
long lLength = 1;
lResult = GetMetaCollection(&lCollec);
if (SUCCEEDED(lResult) && lCollec)
{
lResult = lCollec->get_length(&lLength);
ASSERT(SUCCEEDED(lResult));
}
while (lIndex < lLength)
{
if (lCollec)
{
lResult = lCollec->item(CComVariant(lIndex), CComVariant(), &lDispatch);
lMetaElement = lDispatch;
lDispatch = NULL;
ASSERT(SUCCEEDED(lResult) && lMetaElement);
}
if (SUCCEEDED(lResult) && lMetaElement)
{
//
CComBSTR lName;
lResult = lMetaElement->get_name(&lName);
if (SUCCEEDED(lResult)
&& lName
&& (!wcsicmp(CComBSTR(KEEBOO_PRODUCT_NAME), lName)
|| !wcsicmp(CComBSTR(KEEBOO_COMPANY), lName)))
{
CComBSTR lMetaContent;
lResult = lMetaElement->get_content(&lMetaContent);
if (SUCCEEDED(lResult) && lMetaContent)
{
if (!wcsicmp(L"no-stretch", lMetaContent))
{
m_bNoStretch = TRUE;
}
else if (!wcsicmp(L"no-cache", lMetaContent))
{
CComQIPtr<IPageletSink> lPageletSink(m_pControlSite);
if (lPageletSink)
{
CComObject<TDeleteCacheEntryCallback>* lCallback;
CComQIPtr<IPageletDestroyCallback> lCBInterface;
CComObject<TDeleteCacheEntryCallback>::CreateInstance(&lCallback);
lCallback->SetPage(getModel());
lCBInterface = lCallback;
lPageletSink->SetDestroyCallback(lCallback);
}
}
else
{
TModelPtr<TPropertyObjectModel> lProp;
TModelPtr<TContentModel> lContentModel;
if (!wcsicmp(L"online-reload", lMetaContent))
{
getModel()->getContent(&lContentModel);
GetModelProperty<TContentModel>(lContentModel, T_CONTENT_NETWORK_PROPERTIES, &lProp, TRUE);
ASSERT(lProp);
if (lProp)
lProp->putBooleanField("online-reload", true);
}
else if (!wcsicmp(L"online-flush", lMetaContent))
{
getModel()->getContent(&lContentModel);
GetModelProperty<TContentModel>(lContentModel, T_CONTENT_NETWORK_PROPERTIES, &lProp, TRUE);
ASSERT(lProp);
if (lProp)
lProp->putBooleanField("online-flush", true);
}
}
}
}
}
lIndex++;
}
return S_OK;
}
I
HTML
Document
2 IE浏览器编程
执行script: I
HTML
Document
2 *p
HTML
Document
=NULL;...(p
HTML
Document
= (I
HTML
Document
2*)m_Ie.get_
Document
())) //
获取
I
HTML
Document
2 的
接口
指针 return; CString sScript = L"window.open(\'http
根据Internet Explorer_Server窗口得到I
Html
Document
2
接口
#include #include ...在不同的进程
中
取得IE的Webbrowser控件的I
HTML
Document
2
接口
,请参阅MSDN上的一篇文章,标题是:HOWTO: Get I
HTML
Document
2 from a HWND(根据HWND取得I
HTML
Document
2
接口
)...
用Twebbrowser做可控编辑器与MS
HTML
首先要明白ms
html
的属性方法: {I
HTML
Document
2 方法:} write //写入 writeln //写入并换行 open //打开一个流,以收集
document
.write 或
document
.writeln 的输出 close /...
c++ 跟
网页
对接,VC与JavaScript交互
为什么要让VC与JavaScript交互? 1.有时候我们需要让自己的软件打开一个
网页
,来
获取
页面上的...2.有时候我们需要让自己的软件打开一个
网页
并操控该
网页
,填写表单,提交等动作。这时,可以用ms
html
操作
HTML
,给文本...
前端面试题目汇总摘录(
HTML
和 CSS篇)
它可以使分析器(比如其他网站,Firefox的Operator插件)获得详细的
信息
,并通过别的网站或者地图工具进行显示,或者载入到地址簿等其他程序。 实例: 赖同学 某某公司 电话:xxx-xxx-xxx 赖同学的网站 // 加入微...
HTML/XML
3,055
社区成员
8,066
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章