0

根据http://msdn.microsoft.com/en-us/library/jj206442(v=vs.85).aspx,IViewObjectPresentSite是 MSHTML(IE9?) 的一部分。我正在尝试在 webBrowser2 对象(通过查询 IID_IWebBrowser2 接收)上运行 IID_IViewObjectPresentSite 的 QueryInterface,但它返回失败。我尝试在 htmlDoc2 对象(通过查询 IID_IHTMLDocument2 接收)上查询相同的内容,但也失败了。我可以在这两个对象上成功查询 IID_IViewObject 并取回 IViewObject。

有人可以告诉我如何在浏览器或文档上获取 IID_IViewObjectPresentSite 吗?我正在使用最新的 Windows 8 SDK 和 VS2010 并在 Windows 8 上运行。

提前致谢。

4

1 回答 1

0

在函数 SetClientSite 的实现中,我能够从 ActiveX 代码中获取它。
就像是:

SetClientSite( IOleClientSite *pClientSite ) {  
  CComQIPtr<IViewObjectPresentSite, &IID_IViewObjectPresentSite> spIViewObjectPresentSite;  
  HRESULT hr;  
  hr = pClientSite->QueryInterface(IID_IViewObjectPresentSite, (void **) &spIViewObjectPresentSite);  
} 
于 2012-12-10T15:19:40.807 回答