Winapi 使用进程外ActiveX EXE处理Windows关闭

Winapi 使用进程外ActiveX EXE处理Windows关闭,winapi,com,activex,shutdown,out-of-process,Winapi,Com,Activex,Shutdown,Out Of Process,我们有一个应用程序,它使用多个进程外COM对象来执行各种任务。 如果用户在应用程序运行时告诉Windows关闭,则会向所有应用程序(顶级Windows)发送关闭通知,但OoP COM对象可以在通知父对象之前关闭,并有机会完全关闭,从而导致不同组件中出现各种错误 更糟糕的是,其中一个OoP对象是为了承载一个不稳定的第三方对象而创建的,因此当它崩溃时会自动重新启动,而现在由于Windows关闭而无法重新启动 虽然我们可以处理父进程上的错误,但ActiveX主机是否有办法告诉Windows“我还没有关

我们有一个应用程序,它使用多个进程外COM对象来执行各种任务。 如果用户在应用程序运行时告诉Windows关闭,则会向所有应用程序(顶级Windows)发送关闭通知,但OoP COM对象可以在通知父对象之前关闭,并有机会完全关闭,从而导致不同组件中出现各种错误

更糟糕的是,其中一个OoP对象是为了承载一个不稳定的第三方对象而创建的,因此当它崩溃时会自动重新启动,而现在由于Windows关闭而无法重新启动

虽然我们可以处理父进程上的错误,但ActiveX主机是否有办法告诉Windows“我还没有关闭,但会在适当的时候关闭”,或者更好的办法是,让Windows在第一时间不通知他们


父进程、OOP对象及其主机都是C++和VB6的混合。

< P> >这几种方式。OOP服务器可以忽略关闭请求,依赖于客户端关闭并删除所有引用计数。您可能确实希望设置一个标志,以便在释放最后一个对象时知道立即关闭,服务器通常会运行一段时间


或者您可以调用OOP服务器。传递从GetProcessShutdownParameters()获得的级别减去1,以便客户端始终在服务器之前获得关闭通知。也可以使用没有隐藏窗口的OOP服务器来获取Windows消息。< /P>你有ActiveX Excel的代码吗?YEP,一个是C++与ATL,另一个是VB6项目,听起来很有趣,我认为我们无法访问顶层窗口,但我稍后会和他们玩一玩。谢谢