没有在IHTMLElement事件处理程序中获取事件参数

时间:2008-09-21 02:12:45

标签: c++ internet-explorer com mshtml

我已经向IHTMLElement实例添加了回调,但是当为事件调用IDispatch :: Invoke时,从不存在任何参数(即pDispParams-> cArgs和pDispParams-> cNamedArgs始终为0)。例如,我为onmouseup事件添加了一个回调。据我所知,这个事件的回调应该接收一个MouseEvent对象。那是对的吗?如果是这样,我需要做些什么来确保这种情况发生?

这是在Windows XP SP2上使用MSHTML for IE 6 sp2(或更好)。

1 个答案:

答案 0 :(得分:6)

包括onmouseup在内的所有DOM事件的事件参数都存储在父窗口的event属性(IHTMLWindow2::event

如果您尚未缓存父窗口,IHTMLElement具有document属性,该属性返回IHTMLDocument接口。从中您可以查询具有IHTMLDocument2属性的parentWindow。返回的IHTMLWindow2具有您要查找的event属性。您应该能够从那里查询事件接口。