.
Monday 21st of May 2012    

Информация

Счетчики

Голосование

Лучшая марка телефона
 

Реклама

фильмы онлайн

фильмы онлайн


Фабрика классов - TComObjectFactory
загрузка...

Инкапсулирующий фабрику класса TComObjectFacto ry построен на основе TOb-ject. Единственная задача фабрики класса заключается в создании других объектов - экземпляров класса TComObject. Помимо основного для всех COM-объектов интерфейса IUnknown классом поддерживается еще два характерных для фабрики классов интерфейса: IClassFactory и IClassFactory2. Интерфейс IClassFactory может быть использован для создания всех COM-объектов.

Основные свойства фабрики класса доступны только для чтения. Они инициализируются в момент создания экземпляра фабрики.

Фабрика класса создается COM-сервером автоматически в момент инициализации приложения-сервера. Для этого вызывается впечатляющий по числу параметров конструктор:

constructor Create(ComServer: TComServerObject; ComClass: TComClass; const ClassID: TGUID; const ClassName, Description: string; Instancing: TClassInstancing; ThreadingModel: TThreadingModel = tmSingle);

где ComServer - параметр, связывающий фабрику класса с COM-сервером. Все остальные параметры идентичны ключевым свойствам фабрики (см. табл. 24.1) и определяют особенности создаваемого класса.

Обычно команда на создание экземпляра фабрики класса подается в разделе инициализации приложения-сервера:

initialization

TTypedComObjectFactory.Create(ComServer, TMyComObject, Class_MyComObject, ciMultiInstance, tmApartment); end.

Обратите внимание, что на первый взгляд конструктор не возвращает результата своего труда. В действительности созданная фабрика класса регистрируется в менеджере фабрик - глобальном объекте ComClassManager, но процесс регистрации скрыт от нас внутри кода конструктора.

Для лицензионной защиты вашего объекта от вездесущих пиратов установите в true свойство:

property SupportsLicensing: Boolean;

С этого момента для создания COM-объекта фабрика класса будет требовать ключ. Лицензионная информация о COM-объекте находится в свойстве:

property LicSt ring : WideString;

Если вы хотите, чтобы все происходящие в COM исключительные ситуации сопровождались выводом окна с сообщением об ошибке, установите в true свойство:

property ShowErrors: Boolean;

Идентификационный код интерфейса, с которым связана ошибка, доступен посредством свойства:

property ErrorIID: TGUID.


загрузка...
 

Самое популярное:

Наши партнеры

bottom

карта сайта