Re: Как логировать события html элементов в Internet Explore
От: mager Украина  
Дата: 29.02.08 09:12
Оценка:
Здравствуйте, vitaliy666, Вы писали:

V>Необходимо перехватывать(в целях логирования) следующие события:

V>1.Ввели текст в текстовое поле(input type=text ,textarea,input type=pass).
V>2.Кликнули по html элементу.
V>3.Навели мышь на некоторый html элемент.

V>Как это можно осуществить,в наличии имеется ссылка на экземпляр IWebBrowser2?

V>У меня пока только 1 идея -добавлять нужный мне обработчик этих событий во все html элементы (это точно можно сделать средствами javascript,думаю,COM интерфейсы тоже должны содержать что нибудь подобное).
V>Есть ли способ лучше?


HRESULT hRet = IDispEventSimpleImpl<_nDocID, CSampleClass, &DIID_HTMLDocumentEvents2>::
DispEventAdvise(spDocument, &DIID_HTMLDocumentEvents2);

где spDocument — IHTMLDocument2*
также твой класс также должен наследовать интерфейс IDispEventSimpleImpl
также необходимо в нидере класса описать такую карту сообщений документа

BEGIN_SINK_MAP(CSampleClass)
SINK_ENTRY_INFO(_nDocID, DIID_HTMLDocumentEvents2, DISPID_HTMLDOCUMENTEVENTS2_ONCLICK, OnClick, &DocumentEventInfo)
SINK_ENTRY_INFO(_nDocID, DIID_HTMLDocumentEvents2, DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOUT, OnMouseOut, &DocumentEventInfo)
SINK_ENTRY_INFO(_nDocID, DIID_HTMLDocumentEvents2, DISPID_HTMLDOCUMENTEVENTS2_ONKEYPRESS, OnKeyPress, &DocumentEventInfo)
END_SINK_MAP()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.