0

Microsoft Visual C++ と Windows 7 を使用しています
。ATL と MFC を使用して IE ツールバーを開発しています。IE のバージョンは 11.0.9600.17420 です。

まず、COM オブジェクトの実装IDeskBandIObjectWithSiteインターフェイスを作成しました。
次に、IDeskBandメソッドとIObjectWithSite::SetSiteメソッドを実装しました。パラメーターは 1 つだけIUnknown *pUnkSiteです。

私が覚えているようにpUnkSite->QueryInterface(IID_IOleWindow, (void**)&pOleWindow);、サイトから IOleWindow インターフェイスを取得してからpOleWindow->GetWindow(&hWnd);、親ウィンドウ ハンドルを取得するために呼び出すことができます。これを使用して、ツールバー ウィンドウを window の子として作成できますhWnd

だから私はそれをして、それがpUnkSite->QueryInterface(IID_IOleWindow, (void**)&pOleWindow);エラーであることに気づいたので、オブジェクトによって実装されていません! デバッガーで IE を開き、シンボルをロードし、トレースして、インターフェイスの実装がないことに気付きました。私が間違っていなければ、それはインターフェースでした。0x80004002E_NOINTERFACEIOleWindowpUnkSiteQISearchIOleWindowCIEFrameAuto

IOleWindowでは、ツールバーの親ウィンドウのインターフェイスを取得するにはどうすればよいですか?

4

0 に答える 0