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 に答える