pUnkSite-> QueryInterface (IID_IOleWindow) завершается с ошибкой E_NOINTERFACE в моем BHO

Я использую Microsoft Visual C ++ и Windows 7.
Я разрабатываю панель инструментов IE с ATL и MFC. IE версия 11.0.9600.17420.

Прежде всего, я создал реализацию COM-объекта. IDeskBand а также IObjectWithSite интерфейсы.
Во-вторых, я реализовал IDeskBand методы и IObjectWithSite::SetSite метод. Требуется только один параметр, IUnknown *pUnkSite,

Как я помню, я могу сделать pUnkSite->QueryInterface(IID_IOleWindow, (void**)&pOleWindow); получить интерфейс IOleWindow с сайта, а затем я могу позвонить pOleWindow->GetWindow(&hWnd); получить дескриптор родительского окна; так что я могу создать свое окно панели инструментов как дочерний элемент окна с этим hWnd,

Итак, я сделал это и понял, что pUnkSite->QueryInterface(IID_IOleWindow, (void**)&pOleWindow); возвращается 0x80004002 который E_NOINTERFACE ошибка, так IOleWindow не реализуется pUnkSite объект! Я открыл IE в отладчике, загрузил символы, проследил до QISearch и понял, что нет реализации IOleWindow интерфейс. Если я не ошибаюсь это было CIEFrameAuto интерфейс.

Итак, как я могу получить IOleWindow интерфейс для родительского окна для моей панели инструментов?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]