我们有一个应用程序,它使用多个进程外 COM 对象来执行各种任务。如果用户在我们的应用程序运行时告诉 Windows 关闭,那么它会向所有应用程序(顶级窗口)发送关闭通知,但是 OoP COM 对象可以在通知父级之前关闭并有机会干净地关闭,导致不同组件中的各种错误。
这使情况变得更糟,因为创建了一个 OoP 对象来托管不稳定的第 3 方对象,因此它在崩溃时会自动重新启动,而现在由于 Windows 正在关闭而无法重新启动。
虽然我们可以处理父进程上的错误,但 ActiveX 主机是否有办法告诉 Windows“我还没有关闭,但会在适当的时候关闭”,或者更好的是,让 Windows 不通知它们第一名?
父进程、OoP 对象及其宿主都是 C++ 和 VB6 的混合体。