Библиотека программиста

«Любой дурак может написать программу, которую поймет компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты»

Мартин Фаулер

Главная страница > Технология COM > 49. Расширения COM

49. Расширения COM

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

Расширения COM продолжают развиваться. OLE технологии и сервисы были разработаны для предоставления различных сервисов приложениям Windows. Далее, Microsoft объединила технологии OLE и OCX, назвав их компонентами ActiveX. Технология ActiveX делает объекты COM более компактными и эффективными, что крайне необходимо для приложений, функционирующих в больших сетях.

Вскоре, возможно, Microsoft включит некоторые MTS технологии для разработки комплексных Intranet и Internet приложений на основе COM технологии. Список реализованных в настоящее время расширений таков.

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

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

Контролерыавтоматизации

(Automation controllers)

Это клиенты серверов автоматизации, предоставляющие среду, в которой разработчик или пользователь может писать сценарии (scripts) управления серверами автоматизации

Элементы ActiveX

(ActiveX controls)

Это специализированные COM объекты для компонентов Windows. Они более компактны по сравнению с устаревшими серверами OLE документов, что обеспечивает эффективность их применения в таких масштабных сетевых средах, как Internet или сети Intranet больших предприятий. Элементы ActiveX должны находиться в библиотеке

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

(Type libraries)

Представляет собой набор структурированных данных, часто сохраняемый как ресурс, содержащий подробную информацию об объекте и его интерфейсах.

Клиенты серверов автоматизации и элементов ActiveX получают из этой библиотеки информацию о типах

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

Это объекты, которые поддерживают связывание и внедрение, перемещение, визуальное редактирование и активизацию на месте. Документы Word и таблицы Excel являются примерами активных документов


Визуальные межпроцессные объекты

(Visual cross-process objects)

Объекты, которыми можно управлять из различных процессов

На приведенном ниже рисунке показана взаимосвязь расширений COM.

Серверы и контролеры автоматизации. Термин "автоматизация" означает способность приложения управлять объектами другого приложения программным образом, подобно макросам, способным манипулировать несколькими приложениями одновременно. Клиента объекта автоматизации называют контроллером автоматизации (Automation controller), а объект сервера – объектом автоматизации (Automation object) .

Автоматизация может использоваться для всех трех видов серверов. Для нее характерны два ключевых момента:

Ø объект автоматизации должен иметь возможность определить множество (набор) свойств и команд и описать их возможности посредством описаний типа. Для того чтобы это (описание) реализовать на практике, должен быть способ провести его через описания интерфейсов, методов и их параметров. Обычно эта информация содержится в библиотеках типов (type libraries). В Delphi сервер автоматизации может также генерировать информацию о типах оперативно – "на лету" – когда она будет затребована;

Ø объекты автоматизации должны так реализовать свои методы, чтобы другие приложения могли их использовать. Для этого объекты должны реализовать интерфейс IDispatch. Посредством этого интерфейса объект показывает все свои методы и свойства. Теперь посредством первичного метода этого интерфейса можно вызывать другие методы, которые идентифицируются информацией о типах.

Разработчики, которые хотят создавать и использовать не визуальные OLE объекты, которые могут выполняться в любом адресном пространстве, могут использовать объекты автоматизации. Одной из причин для такого решения является то, что интерфейс IDispatch обеспечивает маршалинг. Однако, автоматизация накладывает некоторые ограничения на доступные для использования типы.





<< Предыдущая статья
«48. Пример реализации и использования COM класса в С++»
Следующая статья >>
50. Последовательность создания простого COM объекта в Delphi