如何识别Excel在XLL外接程序中真的正在关闭?

如何识别Excel在XLL外接程序中真的正在关闭?,excel,add-in,xll,Excel,Add In,Xll,根据MSDN,卸载外接程序时,Excel将在xll外接程序上调用xlAutoClose(可能是因为Excel正在关闭,也可能是因为正在手动删除外接程序) 不幸的是,当用户试图关闭电子表格时,也会调用xlAutoClose,但当提示保存他们的工作时,会取消 根据Excel加载项开发文档(“在C/C++中使用Excel加载项开发的金融应用程序”),当Excel真正关闭时,xlAutoClose之后将调用xlAddInManagerInfo。不幸的是,我发现这不是真的(在2007和2010版本的Exc

根据MSDN,卸载外接程序时,Excel将在xll外接程序上调用xlAutoClose(可能是因为Excel正在关闭,也可能是因为正在手动删除外接程序)

不幸的是,当用户试图关闭电子表格时,也会调用xlAutoClose,但当提示保存他们的工作时,会取消

根据Excel加载项开发文档(“在C/C++中使用Excel加载项开发的金融应用程序”),当Excel真正关闭时,xlAutoClose之后将调用xlAddInManagerInfo。不幸的是,我发现这不是真的(在2007和2010版本的Excel上进行了测试)

XLL插件是否有可靠的方法来区分尝试关闭的电子表格和实际关闭的电子表格

谢谢,
Luke

XLL只是一个名称很怪的DLL,所以如果其他所有操作都失败了,您可以在
DllMain
中检查卸载会发生什么。通常的注意事项适用于此:在
DllMain
中,除了内部清理之外,几乎没有什么可以安全地执行的操作,因此,如果您仍然需要以某种方式执行与用户数据相关的操作,那么现在就不是执行此操作的时候。