В приложении C ++ MFC у меня есть WebBrowser, встроенный в форму. Он был встроен в форму через диалоговое окно «Вставить элемент управления ActiveX …», а затем я создал класс-оболочку IDispatch и добавил переменную.
Вот инструкции, которым я следовал:
http://msdn.microsoft.com/en-us/library/aa752046(v=vs.85).aspx
После нескольких раз создания и уничтожения диалога я получаю сообщение об ошибке «Указатель на нулевую ссылку передан заглушке». когда я звоню следующее:
m_browser->Navigate( _T("about:blank"), NULL, NULL, NULL, NULL );
К сожалению, я не могу воссоздать это, и ни один не может мой отдел QA (только клиенты предположительно Win 7 x64, вызываемые из приложения win32).
Что-то не так с этим подходом или я что-то упускаю вообще?
Спасибо
Попробуйте использовать BSTR строка вместо литерала _T("about:blank")
и передайте пустой вариант вместо NULL:
COleVariant vUrl(_T("about:blank"));
COleVariant vEmpty;
m_browser->Navigate(V_BSTR(&vUrl), &vEmpty, &vEmpty, &vEmpty, &vEmpty);
Это соответствует подписи IWebBrowser2 :: Navigate метод:
HRESULT Navigate(
BSTR url,
VARIANT *Flags,
VARIANT *TargetFrameName,
VARIANT *PostData,
VARIANT *Headers
);
Других решений пока нет …