Всем привет! Задача стоит такая: открыть окно MSIE, используя OLE, затем отслеживать когда пользыватель перейдет по какой либо ссылке и произойдет событие OnNewWindow2. Далее необходимо блокировать всплывающее окно и загрузить новую страницу в мой экземпляр браузера. Вот код открывающий IE: program q1; var IE: variant; begin IE := CreateOleObject('InternetExplorer.Application'); IE.Visible:=false; IE.Navigate('http://blablabla.com', 4); While IE.Busy do begin sleep(100); end; end. Дальше необходимо перехватить и обработать событие, а как это сделать для меня вопрос... Есть у кого соображения на этот счет?
Сейчас уже кое что прояснилось, но еще не до конца, уже понял как обработать сообщение OnBeforeNavigate2, но OnNewWindow2 ни как не получается... что не так в этом коде: type TEventHolder = class public procedure MyBeforeNavigate2(Sender: TObject; var pDisp, URL, Flags, TargetFrameName, PostData, Headers, Cancel: OleVariant); procedure MyOnNewWindow2 (Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool); end; var IE: TInternetExplorer; EventHolder: TEventHolder; procedure TEventHolder.MyOnNewWindow2 (Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool); begin end; procedure TEventHolder.MyBeforeNavigate2(Sender: TObject; var pDisp, URL, Flags, TargetFrameName, PostData, Headers, Cancel: OleVariant); begin end; begin CoInitialize(nil); IE:=TInternetExplorer.Create(nil); IE.Visible:=True; EventHolder := TEventHolder.Create; IE.OnNewWindow2:=EventHolder.MyOnNewWindow2; IE.Navigate('c:\1.html'); CoUninitialize; end. ошибка: Incompatible types: 'OleVariant' and 'IDispatch'