Поделиться через


Метод 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 в объекте класса или при возникновении ошибки. При каждом вызове LockServer с параметром fLock имеет значение TRUE, должен быть вызов LockServer с параметром flock , равным FALSE. Если число блокировок и число ссылок на объект класса равны нулю, объект класса можно освободить.

Требования

   
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header unknwnbase.h (включая Unknwn.h)

См. также раздел

CoLockObjectExternal

IClassFactory