Не получается аргументы события в обработчике события IHTMLElement - PullRequest
4 голосов
/ 21 сентября 2008

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

Используется MSHTML для IE 6 sp2 (или лучше) в Windows XP SP2.

1 Ответ

6 голосов
/ 21 сентября 2008

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

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

...