Não obtendo argumentos do evento no manipulador de eventos IHTMLElement
-
02-07-2019 - |
Pergunta
Eu adicionei uma chamada de retorno a uma instância IHTMLElement mas quando o IDispatch :: Invoke é chamado para o evento, nunca há quaisquer argumentos (ou seja, os pDispParams-> CArGs e pDispParams-> cNamedArgs são sempre 0). Por exemplo, eu adicionar um retorno de chamada para um evento onmouseup. Do que eu posso dizer, uma chamada de retorno para este evento é suposto para receber um objeto MouseEvent. Isso está correto? Se assim for, o que eu preciso fazer para garantir que isso acontece?
Esta é usando o MSHTML para o IE 6 SP2 (ou melhor) no Windows XP SP2.
Solução
Eventos argumentos para todos os eventos DOM incluindo onmouseup
são armazenadas na propriedade event
da janela pai (IHTMLWindow2::event
)
Se você não tiver a janela pai em cache, IHTMLElement
tem uma propriedade document
que retorna uma interface IHTMLDocument
. Desde que você pode consultar IHTMLDocument2
que tem uma propriedade parentWindow
. O IHTMLWindow2
que é retornado tem a propriedade event
que você está procurando. Você deve ser capaz de consulta para a interface de eventos de lá.