我在C ++(EXE)中使用Excel自动化来监听Excel事件。
用户打开Excel应用程序后,我可以通过AccessibleObjectFromWindow
函数引用_Application指针。
在此之后 - 我能够连接到IID_IConnectionPointContainer
并获得各种活动。
我的问题如下:如果我的程序崩溃(或者我停止调试器),我无法正确清理_Application
指针,因此即使用户已关闭,Excel.EXE仍在运行该程序。
这是有道理的,因为_Application
引用计数仍为1。
但是,如果用户再次打开Excel.EXE - >它启动时没有任何加载项。用户需要手动添加色带。 此行为将继续,直到Excel.EXE被手动终止。
有没有人遇到过这样的问题? 有没有办法在我的应用程序崩溃后清理COM对象指针?