1

我们需要在 windows mobile 的 PIE 网络浏览器上加载网页 HTML 源文档。我们尝试过的源代码如下:

IDispatch* pHtmlDocDispatch;
IOleCommandTarget* pOleCommandTarget;
WEBVIEWLib::IPIEHTMLDocument2*         pHTMLDocument2;
WEBVIEWLib::IPIEHTMLWindow2*           pHTMLWindow;

IPIEHTMLElementCollection* pHTMLElementCollection;

hr = pWebBrowser->get_Document(&pHtmlDocDispatch);
CHR(hr);

if (pHtmlDocDispatch != NULL)
{

     hr = pHtmlDocDispatch->QueryInterface(IID_IPIEHTMLDocument2,   (void**)&pHTMLDocument2);
     CHR(hr);

hr = pHTMLDocument2->get_parentWindow(&pHTMLWindow);
CHR(hr);

pHTMLDocument2->get_innerHTML() ... oh. bugger.
}

我们发现在 Windows Mobile 版本的 Web 浏览器控件 (PIE) 中缺少获取 innerHTML() 方法。

现在我们应该如何从 PIE 控件中获取 HTML 文档。他们是一个可能的解决方案吗?

谢谢,拉马南德

4

1 回答 1

1

好吧,我从来没有为 PIE 开发过,但我对 IE activeX 接口相当了解。如果您有一个用于文档元素的 IDispatch* 指针,您应该能够只使用 IDispatch 接口来获取“innerHTML”的 DISPID,然后使用 DISPATCH_PROPERTYGET 调用 Invoke 来获取值。

类似地 DISPATCH_PROPERTYPUT 应该能够设置该值,尽管值得一提的是,要执行 propertyput,您可能还需要在其中包含一个带有 DISPID_PROPERTYPUT 的命名参数。

于 2009-12-25T05:18:57.233 回答