Ne pas recevoir les arguments d'événement dans le gestionnaire d'événements IHTMLElement

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

Question

J'ai ajouté un rappel à une instance IHTMLElement, mais lorsque IDispatch :: Invoke est appelé pour l'événement, il n'y a jamais d'argument (c'est-à-dire que pDispParams- > cArgs et pDispParams- > cNamedArgs sont toujours égaux à 0). Par exemple, j'ajoute un rappel pour un événement onmouseup. D'après ce que je peux dire, un rappel pour cet événement est censé recevoir un objet MouseEvent. Est-ce exact? Si oui, que dois-je faire pour que cela se produise?

Ceci utilise MSHTML pour IE 6 sp2 (ou une version supérieure) sur Windows XP SP2.

Était-ce utile?

La solution

Les arguments d'événements pour tous les événements DOM, y compris onmouseup , sont stockés dans la propriété event de la fenêtre parente ( IHTMLWindow2 :: event )

Si la fenêtre parente n'est pas déjà mise en cache, IHTMLElement possède une propriété document qui renvoie une interface IHTMLDocument . À partir de là, vous pouvez interroger IHTMLDocument2 , qui possède une propriété parentWindow . Le code IHTMLWindow2 renvoyé a la propriété event que vous recherchez. Vous devriez pouvoir interroger l'interface d'événement à partir de là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top