Я работаю над IE BHO, в событии BeforeNavigate2, как я могу получить указатель на IWebBrowser2? вот мой код:(IE BHO) Получить IWebBrowser2 из события BeforeNavigate2
STDMETHODIMP CEventSink::Invoke(DISPID dispIdMember, .....) {
IWebBrowser2* pSite = 0;
HRESULT hr;
if(dispIdMember == DISPID_BEFORENAVIGATE2) {
hr = ((IDispatch*)pDispParams->rgvarg[0].pdispVal)->QueryInterface(IID_IWebBrowser2, (void**)&pSite);// This line Crashes
и тип PARAM [0] не VT_DISPATCH:
if(pDispParams->rgvarg[0].vt == VT_DISPATCH) {
msgbox("yes VT_DISPATCH");
} else {
msgbox("no.."); // it goes here
}
MSDN (BeforeNavigate2) говорит первый параметр
Указатель на интерфейс IDispatch для объекта WebBrowser, который представляет окно или фрейм. Этот интерфейс может быть запрошен для интерфейса IWebBrowser2.
Что случилось с моим кодом?
Заранее спасибо.