Domanda

Ho aggiunto un callback a un'istanza IHTMLElement ma quando viene chiamato IDispatch :: Invoke per l'evento, non ci sono mai argomenti (ad esempio pDispParams- > cArgs e pDispParams- > cNamedArgs sono sempre 0). Ad esempio, aggiungo un callback per un evento onmouseup. Da quello che posso dire, un callback per questo evento dovrebbe ricevere un oggetto MouseEvent. È corretto? In tal caso, cosa devo fare per garantire che ciò accada?

Questo utilizza MSHTML per IE 6 sp2 (o migliore) su Windows XP SP2.

È stato utile?

Soluzione

Gli argomenti degli eventi per tutti gli eventi DOM incluso onmouseup sono memorizzati nella proprietà event della finestra principale ( IHTMLWindow2 :: event )

Se la finestra principale non è già memorizzata nella cache, IHTMLElement ha una proprietà document che restituisce un'interfaccia IHTMLDocument . Da questo è possibile eseguire una query per IHTMLDocument2 che ha una proprietà parentWindow . Il IHTMLWindow2 che viene restituito ha la proprietà evento che stai cercando. Da lì dovresti essere in grado di eseguire una query per l'interfaccia dell'evento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top