我有一个 .NET (C#) 插件,它使用 COM Shim dll 将自身加载到 Excel 中。当 Excel 正常运行时,插件工作正常,没有任何问题。该插件在 Excel 中显示其自己的自定义工具栏,用于执行不同的命令。
当我将 Excel 嵌入到另一个应用程序(例如 DSOFramer 等)中时,插件开始表现得很奇怪。似乎如果我禁用其工具栏上的按钮,则在设置 Visible 属性后它不会再次启用。此外,我收到一堆“未设置对象引用”错误,因为 Application::Selection 对象为 NULL,这在 Excel 正常运行时永远不会发生。有时,当调用 Application::GetAddIns() 方法时,我也会遇到权限错误。
我不确定这里发生了什么,也找不到解释 Excel 嵌入到其他应用程序中时 Excel COM 插件行为的文章。