gpt4 book ai didi

render - DrawToDC 在 IE9 Web 浏览器控件上失败

转载 作者:行者123 更新时间:2023-12-02 05:20:09 26 4
gpt4 key购买 nike

我一直在使用以下代码来获取 IWebBrowser2 控件内容的图元文件矢量图像,如下所示:

IHTMLElement* pDocBody;

IHTMLDocument2* pDoc;

......

pDoc->get_body(&pDocBody);//获取 IHTMLDocument2 的正文元素

pDocBody->get_parentElement(&pEleParent);pEleParent->QueryInterface(IID_IHTMLElement2,(void**)&pRenderEle2);//获取要渲染的元素

pRenderEle2->QueryInterface(IID_IHTMLElementRender,(void**)&pRender);//获取渲染接口(interface)

HDC hMetaDC=::CreateEnhMetaFile(hRefDC,PictFile,&MetaRect,NULL);//获取DC

hr = pRender->DrawToDC(hMetaDC);

上面的代码与 IE6、IE7、IE8 完美配合,为浏览器内容提供矢量图像。但上面的 DrawToDC 调用因 IE9 Beta 版本(在 Windows 7 32 位上测试)而失败,错误代码为: 0x8007000e 。

我尝试过使用WM_PRINT和其他绘制方法,但我只能获取位图图像,而不能获取矢量图像。

知道上面代码中为什么 DrawToDC 在 IE9 上失败,以及是否有其他方法使用 IE9 获取矢量图像。

谢谢,子哈希

<小时/>

谢谢,我担心可能是这样。您知道是否有方法可以将 IE9 渲染暂时切换为 GDI 模式。我预计这会降低渲染质量/效率,而我在当前的应用程序中应该能够忍受。

最佳答案

这只是一个猜测。 IE9 提倡通过硬件加速实现更快的渲染。我怀疑他们正在绕过 GDI 并使用更直接的东西,例如新的 DirectWrite 和/或 Direct2D API。图元文件基本上是 GDI 调用的序列化。如果没有 GDI 调用,就没有太多可捕获的内容。所以你可能不走运。 :-(

关于render - DrawToDC 在 IE9 Web 浏览器控件上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3824042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com