iClassFactory::LockServer 方法 (unknwnbase.h)

锁定在内存中打开的对象应用程序。 这样可以更快地创建实例。

语法

HRESULT LockServer(
  [in] BOOL fLock
);

参数

[in] fLock

如果 为 TRUE,则递增锁计数;如果 为 FALSE,则递减锁计数。

返回值

此方法可返回标准返回值E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL和S_OK。

注解

IClassFactory::LockServer 控制对象的服务器是否保留在内存中。 使应用程序在内存中保持活动状态可以更快地创建实例。

调用方备注

大多数客户端不需要调用此方法。 它只提供给那些在创建其对象的多个实例时需要特殊性能的客户端。

实施者说明

如果锁计数为零,则不再使用其他对象,并且应用程序不受用户控制,则可以关闭服务器。 实现 LockServer 的 一种方法是调用 CoLockObjectExternal 函数。

锁定对象应用程序的过程负责解锁它。 释放类对象后,没有机制可以保证调用方稍后 (与同一类的连接,就像类对象注册为一次性) 的情况一样。 对 LockServer 的所有调用(而不仅仅是最后一个调用)进行计数非常重要,因为在尝试释放指向类对象上的 IClassFactory 接口的指针或导致错误结果之前,调用必须均衡。 每次调用 fLock 设置为 TRUELockServer 时,都必须调用 fLock 设置为 FALSELockServer。 当锁计数和类对象引用计数均为零时,可以释放类对象。

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 unknwnbase.h (包括 Unknwn.h)

另请参阅

CoLockObjectExternal

IClassFactory