如何从Web浏览器控件或文档中获取IViewObjectPresentSite

时间:2012-10-09 17:55:55

标签: mshtml

根据{{​​3}},IViewObjectPresentSite是MSHTML(IE9?)的一部分。我试图在webBrowser2对象上运行IID_IViewObjectPresentSite的QueryInterface(通过查询IID_IWebBrowser2接收),但它返回失败。我试图在htmlDoc2对象(通过查询IID_IHTMLDocument2接收)上查询同样失败。我可以在这两个对象上成功查询IID_IViewObject并返回IViewObject。

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

我能够从ActiveX代码中获取它, 在SetClientSite函数的实现中 类似的东西:

SetClientSite( IOleClientSite *pClientSite ) {  
  CComQIPtr<IViewObjectPresentSite, &IID_IViewObjectPresentSite> spIViewObjectPresentSite;  
  HRESULT hr;  
  hr = pClientSite->QueryInterface(IID_IViewObjectPresentSite, (void **) &spIViewObjectPresentSite);  
}