привет.
IWebBrowser2* webBrowser2;
...
if ( !webBrowser2->QueryInterface( IID_IConnectionPointContainer, (LPVOID*)&pCPC ) )
{
if ( !pCPC->FindConnectionPoint( DIID_DWebBrowserEvents2, &pCP ) )
{
HRESULT res = pCP->Advise( (IUnknown *)&WebBrowserEvent, &dwCookie );
pCP->Release();
}
pCPC->Release();
}
Advise выдает CONNECT_E_CANNOTCONNECT не могу понять почему ((
Здравствуйте, sidaesc, Вы писали:
S>Advise выдает CONNECT_E_CANNOTCONNECT не могу понять почему ((
Во-первых, проще пользоваться AtlAdvise:
AtlAdvise (m_spWebBrowser2, (IDispatch*)this, __uuidof(DWebBrowserEvents2), &dwCookie);
Во-вторых, кто такой WebBrowserEvent? Этот объект был создан?
Здравствуйте, algol, Вы писали:
A>Во-вторых, кто такой WebBrowserEvent? Этот объект был создан?
да это я создал
class cMyWebBrowserEvent : public DWebBrowserEvents2;
Здравствуйте, sidaesc, Вы писали:
S>да это я создал
S>S>class cMyWebBrowserEvent : public DWebBrowserEvents2;
S>
Т.е. WebBrowserEvent — это экземпляр класса cMyWebBrowserEvent? Он был создан перед использованием через CreateInstance()?
Здравствуйте, algol, Вы писали:
A>Т.е. WebBrowserEvent — это экземпляр класса cMyWebBrowserEvent?
ДА
A>Он был создан перед использованием через CreateInstance()?
он был создан просто как
cMyWebBrowserEvent WebBrowserEvent;
в cMyWebBrowserEvent все методы( IUnknown, IDispatch) описаны мной.
Здравствуйте, sidaesc, Вы писали:
S>он был создан просто как
S>S> cMyWebBrowserEvent WebBrowserEvent;
S>
S>в cMyWebBrowserEvent все методы( IUnknown, IDispatch) описаны мной.
Я думаю, что проблема может быть в реализации методов класса, например отсутствии поддержки TypeInfo. Я бы поставил брикпоинты на всех методах класса и посмотрел, что вызывается, какие интерфейсы запрашиваются.