Здравствуйте.
Не получается подключиться к своему созданному классу IDocHostUIHandler через SetUIHandler.
Вот код:
HRESULT onDocumentComplete(IDispatch *pDisp, VARIANT *vUrl)
{
IServiceProvider* spSP = NULL;
HRESULT hRes = pDisp->QueryInterface(IID_IServiceProvider, (void**)&spSP);
if (SUCCEEDED(hRes))
{
IServiceProvider* spSPTop = NULL;
hRes = spSP->QueryService(SID_STopLevelBrowser, IID_IServiceProvider, (void **)&spSPTop);
if (SUCCEEDED(hRes))
{
IWebBrowser2* spBrowser = NULL;
hRes = spSPTop->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, (void **)&spBrowser);
if (SUCCEEDED(hRes))
{
IDispatch* pHTMLDocDisp = NULL;
hRes = spBrowser->get_Document(&pHTMLDocDisp);
if (SUCCEEDED(hRes))
{
IHTMLDocument2* pHTMLDoc = NULL;
hRes = pHTMLDocDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pHTMLDoc);
if (SUCCEEDED(hRes))
{
ICustomDoc* pCustom = NULL;
hRes = pHTMLDocDisp->QueryInterface(IID_ICustomDoc, (void**)&pCustom);
if (SUCCEEDED(hRes))
{
MyDocHandler* mydochandler = new MyDocHandler;
pCustom->SetUIHandler(mydochandler);
pCustom->Release();
}
pHTMLDoc->Release();
}
pHTMLDocDisp->Release();
}
spBrowser->Release();
}
spSPTop->Release();
}
spSP->Release();
}
return hRes;
}
Ошибка в строке:
hRes = pHTMLDocDisp->QueryInterface(IID_ICustomDoc, (void**)&pCustom);
Код ошибки:
E_NOINTERFACE No such interface supported.
Помогите пожалуйста
Проблема так и осталась и не получается её решить
Частично вопрос решен: Оказывается нельзя подключиться из стороннего процесса к ИЕ к IDocHostUIHandler.
Тогда другой вопрос: а можно ли как-то перехватить/подключиться к событию IOleCommandTraget из стороннего процесса? Нужно обработать Refresh у ИЕ.