我已经向IHTMLElement实例添加了回调,但是当为事件调用IDispatch :: Invoke时,从不存在任何参数(即pDispParams-> cArgs和pDispParams-> cNamedArgs始终为0)。例如,我为onmouseup事件添加了一个回调。据我所知,这个事件的回调应该接收一个MouseEvent对象。那是对的吗?如果是这样,我需要做些什么来确保这种情况发生?
这是在Windows XP SP2上使用MSHTML for IE 6 sp2(或更好)。
答案 0 :(得分:6)
包括onmouseup
在内的所有DOM事件的事件参数都存储在父窗口的event
属性(IHTMLWindow2::event
)
如果您尚未缓存父窗口,IHTMLElement
具有document
属性,该属性返回IHTMLDocument
接口。从中您可以查询具有IHTMLDocument2
属性的parentWindow
。返回的IHTMLWindow2
具有您要查找的event
属性。您应该能够从那里查询事件接口。