Классы TComObject и TComObjectFactory
В Delphi существует
два класса, которые инкапсулируют
СОМ-объекты и фабрики классов,
называемые соответственно TComObject и TComObjectFactory. Класс TComObject содержит необходимую
инфраструктуру для поддержки
интерфейса IUnknown и создания объектов из
класса TComObjectFactory. Подобным образом
класс TComObjectFactory поддерживает
интерфейс IClassFactory и "умеет"
создавать объекты TComObject. Проще всего
генерировать СОМ-объект с помощью
СОМ Object Wizard
(мастер СОМ-объекта),
расположенного во вкладке ActiveX диалогового окна New Items. В листинге 23.1 приведен псевдокод,
сгенерированный этим мастером.
Потомок класса
TComServer объявляется и
реализуется подобно большинству
VCL-классов.
Параметры,
переданные конструктору Create() компонента TComObjectFactory, связывают этот
потомок класса TComServer с соответствующим
объектом TComObjectFactory. Первый параметр
конструктора ?
объект TComServer. Этот параметр
практически всегда будет принимать
значение глобального объекта ComServer, определенного в
модуле ComServ. Второй параметр типа TComObject вы связываете с
фабрикой, а третий параметр ? это CLSID СОМ-класса TComObject Четвертый и пятый
параметры ? это
строки имени и описания класса,
используемые для опиcания СОМ-класса в
системном реестре операционной
системы.
Экземпляр класса
TComObjectFactory создается в модуле
инициализации; при этом фабрика
класса будет доступна для создания
экземпляра СОМ-объекта после
загрузки СОМ-сервера. 3агрузка
СОМ-сервера зависит от его типа?
внутренний ли
это сервер (DLL)
или внешний (приложение).
|