我为 FireFox 编写了插件,它提供了选择文件的方法。此方法调用 Win API 函数GetOpenFileName
。当显示“打开文件”对话框并且我没有切换到其他窗口时,一切正常。如果我点击浏览器窗口,那么一切都会被阻止,一段时间后我会看到插件崩溃的消息。此问题仅在 FireFox 中存在,在 Chrome 和 Safari 中不存在。GetOpenFileName
我认为这与有自己的消息循环的事实有关。有没有简单的方法来纠正这种行为?
例如函数SHBrowseForFolder
在 FireFox 中运行良好。
在 FireFox 源代码中,我看到了可能可以解决这个问题的类MessageLoop
和方法SetNestableTasksAllowed()
(至少这个结论可以从标题中的解释中得出)。但是在 xulrunner-sdk-13.0.1 中没有带有类的头文件,MessageLoop
尽管有带有 function 的 xul.lib GetIOMessageLoop
。可能可以从 FireFox 源中获取标头,但我认为在我的 VS 2010 项目中使用它们并不容易