Не могу получить IID_WebBrowser2 в Windows

У меня есть этот код, и он не работает:

template <const GUID* pFbCLSID, const char* pMT, class ICurObjInt,
const IID* piid, const GUID* plibid>
STDMETHODIMP CFBControl<pFbCLSID, pMT,ICurObjInt,piid,plibid>::SetClientSite(
IOleClientSite *pClientSite )
{
HRESULT hr = IOleObjectImpl<CFBControlX>::SetClientSite (pClientSite);
if (!pClientSite || !pluginMain) {
shutdown();
return hr;
}

m_serviceProvider = pClientSite;
if (!m_serviceProvider)
return E_FAIL;
// HERE QueryService() return E_NOINTERFACE
m_serviceProvider->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2,
reinterpret_cast<void**>(&m_webBrowser));
m_serviceProvider.Release();
}

QueryService() возвращается E_NOINTERFACE, Это плагин Firebreath (www.firebreath.org) для IE, и он загружается динамически. когда DWebBrowserEvents2::OnDocumentComplete2() событие возникает в моем BHO, я вставляю объект JS плагина, и он вызывает код выше.

В моем BHO у меня тот же код, когда я подписываюсь на события, и он работает нормально.

4

Решение

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

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

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

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