【发布时间】:2011-05-04 18:19:24
【问题描述】:
我们有一个 activex 控件,它需要在阻塞时发送 win32 消息以保持 IE 响应。为了避免一些由 activex 引入的真正令人讨厌的 javascript 问题,我们希望从我们的 activex 控件的 win32 消息泵中跳过 WM_TIMER 消息,当 IE 的消息泵重新获得控制权时,IE 可以处理它们。
这行得通,但我绝对害怕以这种方式与 IE 内部组件混为一谈,如果我们选择继续,预计会出现随机的不可重现的故障,当然也不指望未来可以证明。我们正式支持 IE7+。 IE6 兼容性很好,但我们已经有了一个适用于所有 IE 版本的迂回解决方法。
我认为这种方法实际上可能合理的唯一原因是 IE 开发人员工具 javascript 调试器中的断点似乎会停止整个进程,这意味着延迟 WM_TIMER 消息并没有完全搞砸,至少在 IE8 中是这样。
如果我在下载 1GB 文件时将消息延迟半小时怎么办?
【问题讨论】:
-
由于首先无法保证 WM_TIMER 消息的传递时间,我想你会没事的,FWIW。
标签: windows winapi internet-explorer com activex