社区
HTML/XML
帖子详情
关于IViewObject2接口的问题
zipzipzipzip
2006-11-21 09:55:50
我使用下面的代码,想得到IViewObject2的接口,但是失败了,hr = E_NOINTERFACE...
那位高手能告诉我为什么,应该如何正确得到?
hr = m_pBrowser->QueryInterface(IID_IViewObject2,
(void**)&pViewObject);
...全文
464
11
打赏
收藏
关于IViewObject2接口的问题
我使用下面的代码,想得到IViewObject2的接口,但是失败了,hr = E_NOINTERFACE... 那位高手能告诉我为什么,应该如何正确得到? hr = m_pBrowser->QueryInterface(IID_IViewObject2, (void**)&pViewObject);
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zipzipzipzip
2006-11-21
打赏
举报
回复
代码也是从网上找到的:
IHTMLDocument3* pDocument3 = NULL;
IHTMLDocument2* pDocument = NULL;
IHTMLElement2* pElement2 = NULL;
IHTMLElement* pElement = NULL;
IViewObject2* pViewObject = NULL;
IDispatch* pDispatch = NULL;
IDispatch* pWebBrowserDisp = NULL;
HRESULT hr;
long bodyHeight;
long bodyWidth;
long rootHeight;
long rootWidth;
long height;
long width;
hr = m_pBrowser->get_Document(&pDispatch);
if (FAILED(hr))
return true;
hr = pDispatch->QueryInterface(IID_IHTMLDocument2,
(void**)&pDocument);
if (FAILED(hr))
return true;
hr = pDocument->get_body(&pElement);
if (FAILED(hr))
return true;
hr = pElement->QueryInterface(IID_IHTMLElement2, (void**)&pElement2);
if (FAILED(hr))
return true;
hr = pElement2->get_scrollHeight(&bodyHeight);
if (FAILED(hr))
return true;
hr = pElement2->get_scrollWidth(&bodyWidth);
if (FAILED(hr))
return true;
hr = pDispatch->QueryInterface(IID_IHTMLDocument3,
(void**)&pDocument3);
if (FAILED(hr))
return true;
hr = pDocument3->get_documentElement(&pElement);
if (FAILED(hr))
return true;
hr = pElement->QueryInterface(IID_IHTMLElement2, (void**)&pElement2);
if (FAILED(hr))
return true;
hr = pElement2->get_scrollHeight(&rootHeight);
if (FAILED(hr))
return true;
hr = pElement2->get_scrollWidth(&rootWidth);
if (FAILED(hr))
return true;
width = bodyWidth;
height = rootHeight > bodyHeight ? rootHeight : bodyHeight;
hr = pDispatch->QueryInterface(IID_IViewObject2, (void **)&pViewObject);
if (FAILED(hr))
return true;
HDC hdcMain = GetDC( m_hWnd );
HDC hdcMem = CreateCompatibleDC(hdcMain);
HBITMAP hBitmap = CreateCompatibleBitmap(hdcMain, width, height);
SelectObject(hdcMem, hBitmap);
RECTL rcBounds = { 0, 0, width, height };
hr = pViewObject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, hdcMain,
hdcMem, &rcBounds, NULL, NULL, 0);
if (SUCCEEDED(hr))
{
CImage image;
image.Create(width, height, 24);
CImageDC imageDC(image);
::BitBlt(imageDC, 0, 0, width, height, hdcMem, 0, 0, SRCCOPY);
image.Save(m_strDestFilename);
}
pViewObject->Release();
lion_wing
2006-11-21
打赏
举报
回复
你后面的代码贴出来看看
zipzipzipzip
2006-11-21
打赏
举报
回复
试了,还是老样子,页面已经出来了,可还是不能画出来
lion_wing
2006-11-21
打赏
举报
回复
try it like this:
IWebBrowser2* m_pBrowser;
CoCreateInstance( CLSID_InternetExplorer, NULL, CLSCTX_SERVER, IID_IWebBrowser2, ( void** ) &m_pBrowser );
pBrowser->put_Visible(VARIANT_TRUE);
CComVariant d = "about:blank";
CComVariant t = 2;
CComVariant v = "";
CComVariant p = "";
CComVariant h = "";
pBrowser->Navigate2(&d,&t,&v,&p,&h);
IDispatch *pIDispatch = NULL;
m_pBrowser->get_Document(&pIDispatch);
pIDispatch->QueryInterface(IID_IViewObject2, (void **)&pIViewObject);
zipzipzipzip
2006-11-21
打赏
举报
回复
用了楼上的兄台的方法的确可以取到,但是@err得到错误 14000:申请的节不存在于激活上下文。
之后hr = pViewObject->Draw(DVASPECT_CONTENT, 1, NULL, NULL, hdcMain, hdcMem, &rcBounds, NULL, NULL, 0); 也失败了,hr= 0x800703f0 试图引用不存在的令牌。
不知道是什么原因,郁闷了。。。
lion_wing
2006-11-21
打赏
举报
回复
IWebBrowser2* m_pBrowser;
CoCreateInstance( CLSID_InternetExplorer, NULL, CLSCTX_SERVER, IID_IWebBrowser2, ( void** ) &m_pBrowser );
IDispatch *pIDispatch = NULL;
m_pBrowser->get_Document(&pIDispatch);
pIDispatch->QueryInterface(IID_IViewObject2, (void **)&pIViewObject);
蒋晟
2006-11-21
打赏
举报
回复
Internet Explorer does not support this interface.
zipzipzipzip
2006-11-21
打赏
举报
回复
不使用MFC和ATL
zipzipzipzip
2006-11-21
打赏
举报
回复
IWebBrowser2* m_pBrowser;
CoCreateInstance( CLSID_InternetExplorer, NULL, CLSCTX_SERVER, IID_IWebBrowser2, ( void** ) &m_pBrowser );
蒋晟
2006-11-21
打赏
举报
回复
is m_pBrowser an ActiveX control?
zipzipzipzip
2006-11-21
打赏
举报
回复
顶一下
CRM系统浅析
1. CRM概念CRM——Customer Relationship Management,客户关系管理,它按照客户的分割情况有效的组织企业资源,培养以客户为中心的经营行为以及实施以客户为中心的业务流程,以此来提高企业的盈利能力和客户满意度。C—包括客户,潜在客户,分销商,代理商。R—关系,比较复杂,我也不是很清楚,简单说一下:Ø 关系有一个生命周期,即建立,发展,维持,破裂
电子政务建设的发展过程中CRM思想应用浅析
20世纪80年代以来,随着经济全球化和信息社会的到来,西方发达国家兴起了一场试图打破传统理论和管理模式的束缚,尝试用新的理论对政府管理进行根本性或方向性调整的新公共管理运动.在 “ 政府再造 ” 和 “ 政府重塑 ” 的公共管理变革理念的引导下,世界各国政府纷纷对政府部门进行实质性的改革,其中最突出地表现在更多的企业管理理论和理念被运用到政府运作过程并发挥着重要的作用。 运用信息技
CRM进化论:浅析CRM发展阶段
什么是CRM? CRM的英文全称为Customer Relationship Management,通常译为“客户关系管理”,最早诞生于美国,由Gartner Group首先提出CRM这个概念的:“CRM是一种商业策略,它按照客户的分类情况有效地组织企业资源,培养以客户为中心地经营行为,以及实施以客户为中心地业务流程,并以此为手段来提高企业赢利能力、利润...
纽带线浅析CRM系统起源发展
不论什么事物,它们的出现、发展到消失都是有着相应的背景在控制的,CRM也是一样,近几年的快速发展也是因为有着多种背景因素而催生的结果,那CRM的发展动力到底源自哪里呢? 今天纽带线CRM小编跟大家分享CRM系统的起源与发展。 发展需求的拉动 从ERP的发展过程中我们就可以看出这样的情况,企业会随着发展慢慢地扩大,在扩大的过程中需要管理的资源也跟着变得越来...
CRM设计思路浅析
CRM系统可以以信息技术以及互联网技术来协调企业与顾客间在销售、营销和服务上的交互,从而提升企业管理水平,向客户提供创新式的个性化的客户交互和服务的过程。其最终目标是吸引新客户、保留老客户以及将已有客户转为忠实客户,增加市场份额。 CRM使得集团在客户管理方面产生两个重要趋势转变,一是以产品为中心向以客户为中心模式的转变;二是管理的视角从“内视型”向“外视型”的转变。纳通
HTML/XML
3,056
社区成员
8,075
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章