Статья:
Как использовать событие OnNewWindow2Автор(ы): Тимофей Чадов
Дата: 10.09.2001
Авторы:
Тимофей Чадов
Аннотация:
Это событие возникает, когда WebBrowser пытается открыть страницу в новом окне. Например, это может случится, если пользователь выбрал команду Открыть в новом окне (щелкнул по ссылке с нажатой клавишей Shift) или в результате выполнения скрипта window.open .., и т.п. Понятно, что такое поведение броузера не всегда нас устраивает. Пользователь наверняка будет в недоумении, если вместо вашей программы откроется окно IE. Эту проблему можно решить, переопределив реакцию на событие NewWindow2.
Здравствуйте, Тимофей Чадов, Вы писали:
...
В статье написано как блокировать открытие нового окна или открыть страницу в новом экземпляре своего приложения. мне нужно открыть ссылку в том же экземпляре свего приложения. Как это сделать?
Пробовал так:
HRESULT CHandleWB2Events::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult,
EXCEPINFO * pExcepInfo, UINT * puArgErr)
{
HRESULT hr;
...
case DISPID_NEWWINDOW2:
if (pDispParams)
hr = m_pIWebBrowser2->get_Application (pDispParams->rgvarg[1].ppdispVal);
...
}
при этом hr = 0, но страница вообще нигде не открывается
Здравствуйте, Тимофей Чадов, Вы писали:
ТЧ>Статья:
ТЧ>Авторы:
ТЧ> Тимофей Чадов
ТЧ>Аннотация:
ТЧ>Это событие возникает, когда WebBrowser пытается открыть страницу в новом окне. Например, это может случится, если пользователь выбрал команду Открыть в новом окне (щелкнул по ссылке с нажатой клавишей Shift) или в результате выполнения скрипта window.open .., и т.п. Понятно, что такое поведение броузера не всегда нас устраивает. Пользователь наверняка будет в недоумении, если вместо вашей программы откроется окно IE. Эту проблему можно решить, переопределив реакцию на событие NewWindow2.
а можно эту штуку без класов сделать.
Здравствуйте, EdBond, Вы писали:
EB>а можно эту штуку без класов сделать.
см. сюда
Здравствуйте, Тимофей Чадов, Вы писали:
ТЧ>Это событие возникает, когда WebBrowser пытается открыть страницу в новом окне. Например, это может случится, если пользователь выбрал команду Открыть в новом окне (щелкнул по ссылке с нажатой клавишей Shift) или в результате выполнения скрипта window.open .., и т.п. Понятно, что такое поведение броузера не всегда нас устраивает. Пользователь наверняка будет в недоумении, если вместо вашей программы откроется окно IE. Эту проблему можно решить, переопределив реакцию на событие NewWindow2.
А есть ли какая-либо возможность перехватить окна, открываемые с плмощью showModalDialog и showModelessDialog?
Эти функции не генерят NewWindow2