coReleaseServerProcess 函数 (combaseapi.h)

递减全局每个进程的引用计数。

语法

ULONG CoReleaseServerProcess();

返回值

如果服务器应用程序应启动其清理,则函数返回 0;否则,该函数将返回非零值。

注解

服务器可以调用 CoReleaseServerProcess ,以递减通过调用 CoAddRefServerProcess 递增的全局每进程引用计数。

当该计数达到零时,OLE 会自动调用 CoSuspendClassObjects,这会阻止新的激活请求传入。 这允许服务器从其各种线程中取消注册其类对象,而无需担心另一个激活请求可能会传入。 新的激活请求会导致启动本地服务器进程的新实例。

本地服务器应用程序使用这些函数的最简单方法是在其每个实例对象的构造函数中调用 CoAddRefServerProcess,并在 fLock 参数为 TRUE 时在其每个 IClassFactory::LockServer 方法中调用 CoAddRefServerProcess。 当 fLock 参数为 FALSE 时,服务器应用程序还应在其每个实例对象的析构函数中调用 CoReleaseServerProcess,并在其每个 IClassFactory::LockServer 方法中调用 CoReleaseServerProcess。 最后,服务器应用程序必须检查 CoReleaseServerProcess 的返回代码;如果返回 0,则服务器应用程序应启动其清理。 这通常意味着具有多个线程的服务器应向其各种线程发出信号,以退出其消息循环并调用 CoRevokeClassObjectCoUninitialize

如果完全使用这些 API,则必须在对象实例和 LockServer 方法中调用它们,否则服务器应用程序可能会过早关闭。 进程内服务器通常不应调用 CoAddRefServerProcessCoReleaseServerProcess

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 combaseapi.h (包括 Objbase.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

CoAddRefServerProcess

CoSuspendClassObjects

IClassFactory::LockServer

进程外服务器实现帮助程序