如果应用程序没有正确closures,则不会发布作为Com Server的Excel

我正在使用正在侦听Excel事件的C ++(EXE)中的Excel自动化。 一旦用户打开Excel应用程序,我可以通过AccessibleObjectFromWindow函数引用_Application指针。 之后 – 我可以连接到IID_IConnectionPointContainer并获取各种事件。

我的问题如下:如果我的程序崩溃(或者如果我停止debugging器),我无法正确清理_Application指针,所以即使用户closures程序,Excel.EXE仍在运行。 这是有道理的,因为_Application引用计数仍然是1。

但是,如果用户再次打开Excel.EXE – >它启动没有任何加载项。 用户需要手动添加色带。 此行为将继续,直到Excel.EXE手动终止。

有没有人遇到过这样的问题? 有没有办法清理COM对象指针后,我的应用程序崩溃?