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


Реализация IClassFactory

Когда клиент использует CLSID для запроса создания экземпляра объекта, первый шаг — создание объекта класса, промежуточный объект, содержащий реализацию методов интерфейса IClassFactory. В то время как COM предоставляет несколько функций создания экземпляра, первым шагом в реализации этих функций является создание объекта класса.

В результате все серверы должны реализовать методы интерфейса IClassFactory , который содержит два метода:

  • CreateInstance. Этот метод должен создать неинициализированный экземпляр объекта и вернуть указатель на запрошенный интерфейс объекта.
  • LockServer. Этот метод просто увеличивает количество ссылок на объект класса, чтобы убедиться, что сервер остается в памяти и не завершает работу, прежде чем клиент готов к этому.

Чтобы разрешить серверу отвечать за собственное лицензирование, COM определяет IClassFactory2, который наследует его определение от IClassFactory. Таким образом, сервер, реализующий IClassFactory2 , должен по определению реализовать методы IClassFactory.

COM также предоставляет вспомогательные функции для реализации внепроцессных серверов. Дополнительные сведения см . в справке по реализации внепроцессного сервера.

Обязанности COM-сервера

Лицензирование и IClassFactory2