Как захватить события, запущенные из нового окна Popup IE - PullRequest
0 голосов
/ 19 мая 2009

Привет!

Положение:

Моя ActiveX DLL содержит настроенный веб-браузер. Веб-браузер отображает веб-страницу. Когда пользователь щелкает ссылку на отображаемой странице, появляется новое окно IE и происходит переход по URL-адресу нажатой ссылки.

Вопрос:

Как я могу захватить события DocumenComplete и NavigateComplete, запущенные из всплывающего окна IE NEW ?

Что я уже пробовал:

Я пытался захватить * NewWindow2 (IDispatch ** ppDisp, VARIANT_BOOL Отмена) Событие было запущено из настроенного веб-браузера (не нового окна IE) и получило указатель ppDisp, который указывает на новую версию IE. Я попытался использовать этот указатель в качестве источника события, чтобы посоветовать или подключиться к обработчику события (IDispatch :: Invoke) для захвата события. Однако это не работает. Возможно, причина в том, что документ в новом окне IE еще не загружен. Я не уверен.

Не могли бы вы дать мне предложение, что мне делать?

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 мая 2009
void CYourDlg::OnNewWindow2(LPDISPATCH FAR* ppDisp, BOOL FAR* Cancel)
{
  CDlgNewWB* dlgNewWB = new CYourDlg;
  this.listDialogWeb.Add(dlgNewWB);
  dlgNewWB ->Create(IDD_WBDLG_DIALOG);

  dlgNewWB ->m_webBrowser.SetRegisterAsBrowser(TRUE);

  *ppDisp = dlgNewWB ->m_webBrowser.GetApplication();

}

1 голос
/ 20 мая 2009

Вы не получаете новый веб-браузер в ppDisp. Вы создаете его, поглощаете события и возвращаете его свойство приложения в ppDisp событию.

...