C++ ATL服务中的COM对象生存期管理

C++ ATL服务中的COM对象生存期管理,c++,com,windows-services,atl,C++,Com,Windows Services,Atl,我正试图了解使用ATL编写Windows服务的概念 我已经创建了一个项目,并了解我可以覆盖CAtlServiceModuleT函数以满足我对服务的需求 我想做的是让服务创建一个COM对象(称为Manager),处理作业的调度和执行 如何创建COM对象的单个实例,该实例在处理所有作业的服务生命周期内都可用 我设想编写一个客户端程序,在Manager公开的接口上调用函数,以创建/读取/更新/删除作业 我的想法是,在我的客户机程序连接到Manager对象之前,该服务不会创建Manager对象——当最后

我正试图了解使用ATL编写Windows服务的概念

我已经创建了一个项目,并了解我可以覆盖CAtlServiceModuleT函数以满足我对服务的需求

我想做的是让服务创建一个COM对象(称为Manager),处理作业的调度和执行

如何创建COM对象的单个实例,该实例在处理所有作业的服务生命周期内都可用

我设想编写一个客户端程序,在Manager公开的接口上调用函数,以创建/读取/更新/删除作业

我的想法是,在我的客户机程序连接到Manager对象之前,该服务不会创建Manager对象——当最后一个客户机与它断开连接时,COM会破坏Manager——从而破坏它处理作业的能力

任何关于这方面的好文件都将不胜感激

更新:


它会像调用CoCreateInstance一样简单吗?比如说,从CAtlServiceModuleT::Run()的重写版本调用CoCreateInstance,然后在服务关闭时进行最终发布调用

您可以使用创建这样一个对象。

本文可能会有所帮助,尽管从那时起事情可能变得更容易了: