ActiveX в Delphi

Расширения СОМ



Технология СОМ изначально разрабатывалась как ядро для осуществления межпрограммного взаимодействия. Уже на этапе разработки предполагалось расширять возможности технологии при помощи так называемых расширений СОМ. СОМ расширяет собственную функциональность, благодаря созданию специализированных наборов интерфейсов для решения конкретных задач.
Технология ActiveX - это технология, которая использует компоненты СОМ, особенно элементы управления. Она была создана для того, чтобы работа с элементами управления была более эффективной. Это особенно необходимо при работе с приложениями Internet/Intranet, в которых элементы управления должны быть загружены на компьютер клиента, прежде чем они будут использоваться.
Технология ActiveX - не единственное расширение СОМ. В табл. 3.2 представлены некоторые из используемых в настоящее время расширений СОМ.
Перечисленные в табл. 3.2 расширения СОМ - это далеко не все из имеющихся. Постоянно идет доработка старых и создание новых, более совершенных технологий межпрограммного взаимодействия.
Таблица 3.2. Список расширений СОМ


Расширение СОМ

Краткое описание

Серверы автоматизации (Automation servers)

Серверы автоматизации- это объекты, которыми можно управлять из других приложений во время работы приложения. Таким образом, автоматизация- это способность приложения программно контролировать объекты других приложений

Диспетчеры автоматизации или СОМ-клиенты (Automation Controllers, COM Clients)

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

Элементы управления ActiveX (ActiveX Controls)

Элементы управления ActiveX предназначены для серверов внутри процесса (in-process COM servers). Элементы ActiveX обычно используются путем встраивания в приложение-клиент

Библиотеки типов (Type Libraries)

Библиотеки типов представляют собой статичные структуры данных, которые часто сохраняются как файлы ресурсов. Они содержат детализированную информацию об объекте и его интерфейсах. Клиенты серверов автоматизации и элементы управления ActiveX используют данную информацию и всегда считают ее доступной

Страницы активного сервера (Active Server Pages)

Активные серверные страницы- это компоненты ActiveX, которые позволяют вам создавать динамически изменяющиеся Web-страницы

Активные документы (Active Documents)

Активные документы - это объекты, которые поддерживают связывание и внедрение, визуальное редактирование, перенос (drag-and-drop). В качестве примера таких документов можно представить документы Microsoft Word и книги Microsoft Excel

Визуальные межпроцессные объекты (Visual Cross-process Objects)

Визуальные межпроцессные объекты- это визуальные объекты, которыми можно управлять из других процессов


На рис. 3.7 представлена диаграмма, которая показывает связь некоторых расширений СОМ и их связь с технологией СОМ.
Использование СОМ-объектов имеет как преимущества, так и некоторые ограничения. СОМ-объекты могут быть как визуальными, так и невизуальными. Какие-то СОМ-объекты должны быть запущены в одном процессе с клиентом, другие - в разных процессах либо на разных,,компьютерах.
Приведенная ниже табл. 3.3 кратко описывает особенности объектов каждого из вышеприведенных расширений СОМ.


Рис. 3.7. Технологии, основанные на СОМ
Таблица 3.3. Особенности объектов СОМ
СОМ-объект

Визуаль-ность

Процесс

Связь

Библиотека типов

Активный документ (Active Document)

Обычно визуальный

Внутренний или локальный

OLE

Нет

Автоматизация (Automation)

Может быть как визуальным, так и невизуальным

Внутренний, локальный или удаленный

Автоматический маршалинг при помощи интерфейса

IDispatch

Требуется для автоматического маршалмнга

Элемент управления ActiveX (ActiveX Control)

Обычно визуальный

Внутренний

Автоматический маршалинг при помощи интерфейса

IDispatch

Требуется

Произвольный объект интерфейса

По выбору

Внутренний

Не требуется маршалинг

Рекомендуется

Произвольный объект интерфейса

По выбору

Внутренний, локальный или удаленный

Автоматический маршалинг в зависимости от библиотеки типов, в противном случае-ручной маршалинг

Рекомендуется



Глава 8 Содержание Глава 10



Содержание раздела