Не получать аргументы события в обработчике событий IHTMLElement

StackOverflow https://stackoverflow.com/questions/110015

Вопрос

Я добавил обратный вызов к экземпляру IHTMLElement, но когда для события вызывается IDispatch::Invoke, аргументов никогда не бывает (т. е.pDispParams->cArgs и pDispParams->cNamedArgs всегда равны 0).Например, я добавляю обратный вызов для события onmouseup.Насколько я могу судить, обратный вызов для этого события должен получить объект MouseEvent.Это верно?Если да, то что мне нужно сделать, чтобы это произошло?

Здесь используется MSHTML для IE 6 SP2 (или более поздней версии) в Windows XP SP2.

Это было полезно?

Решение

Аргументы событий для всех событий DOM, включая onmouseup хранятся в родительском окне event свойство (IHTMLWindow2::event)

Если родительское окно еще не кэшировано, IHTMLElement имеет document свойство, которое возвращает IHTMLDocument интерфейс.Из этого вы можете запросить IHTMLDocument2 который имеет parentWindow свойство.А IHTMLWindow2 который возвращается, имеет event недвижимость, которую вы ищете.Отсюда вы сможете запросить интерфейс событий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top