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