Дескриптор DISPID_ONVISIBLE
Я пытаюсь скрыть IWebBrowser2, который я помещаю в DISPID_NEWWINDOW2.
Но не повезло:-(
IWebBrowser2 всегда виден после навигации. Вот почему я пытаюсь обработать DISIP_ONVISIBLE и вызвать put_Visible(VARIANT_FALSE), чтобы скрыть IWebBrowser2, но это событие я получаю только тогда, когда сам вызываю put_Visible()...
Как решить мою задачу?
Спасибо за любую помощь.
1 ответ
Воплощать в жизнь NewWindow2
или же NewWindow3
и установить ppDisp
к новому экземпляру IWebBrowser2
,
Чтобы убедиться, что этот новый экземпляр не виден, используйте put_Visible или вызовите ShowWindow(SW_HIDE)
на контейнере элемента управления.
Вы также можете установить *Cancel = VARIANT_TRUE
вообще отключить всплывающее окно.
Внедрение NewWindow3
даст вам адрес назначения.
STDMETHODIMP CMyBrowser::OnNewWindow3(IDispatch **ppDisp,
VARIANT_BOOL *Cancel,
DWORD dwFlags,
BSTR bstrUrlContext,
BSTR bstrUrl)
{
// spWebBrowser = create a newly instance of IWebBrowser2
ppDisp = (IDispatch*)spWebBrowser;
return S_OK;
}