Требуются IHTMLWindow2 и IHTMLDocument2
От: Brevno  
Дата: 16.05.08 11:30
Оценка:
Пишется BHO.

В окне IE имеется открытая HTML-страница. В этой странице программно ищется нужная ссылка и имитируется клик по ней. Примерно так, как показано во фрагменте кода.

CComQIPtr<IHTMLWindow2> pWindow;
CComQIPtr<IHTMLDocument2> pDoc;
// Здесь получаем pWindow и pDoc
. . .
// Получаем коллекцию ссылок
CComPtr<IHTMLElementCollection> pLinksColl;
pDoc->get_links(&pLinksColl);
// Здесь выбираем нужную ссылку
. . .    
CComPtr<IDispatch> pDispLink;
pLinksColl->item(ItemIndex, Empty, &pDispLink);
. . .
CComQIPtr<IHTMLAnchorElement> pLink = pDispLink;
. . .
// Здесь имитируем клик по ссылке
ComQIPtr<IHTMLElement> pElLink = pLink;
pElLink->click();
. . .



По условиям задачи ссылка открывается в новом окне, свойство target элемента Anchort имеет значение _blank и менять его нельзя, т.е. нельзя открыть ссылку во фрейме.

Необходимо обработать этот открываемый в новом окне документ и после обработки закрыть окно. Другими словами, требуется получить интерфейс IHTMLWindow2 или IHTMLDocument2 для нового окна. Как это можно сделать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.