Подключение к IDocHostUIHandler через ICustomDoc->SetUIHandler
От: iLnes  
Дата: 04.10.15 21:37
Оценка:
Здравствуйте.
Не получается подключиться к своему созданному классу 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.


Помогите пожалуйста
Re: Подключение к IDocHostUIHandler через ICustomDoc->SetUIHandler
От: Hanio  
Дата: 06.12.15 20:59
Оценка:
Проблема так и осталась и не получается её решить
Re[2]: Подключение к IDocHostUIHandler через ICustomDoc->SetUIHandler
От: Hanio  
Дата: 07.12.15 18:36
Оценка:
Частично вопрос решен: Оказывается нельзя подключиться из стороннего процесса к ИЕ к IDocHostUIHandler.
Тогда другой вопрос: а можно ли как-то перехватить/подключиться к событию IOleCommandTraget из стороннего процесса? Нужно обработать Refresh у ИЕ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.