Как и многие современные среды программирования, Delphi поддерживает возможность автоматизированной разработки приложений, работающих с различными СОМ-сервисами или серверами. Для более глубокого понимания принципов работы приложений, создаваемых на основе СОМ-технологии, проведем краткий обзор наиболее доступных СОМ-серверов – приложений пакета Microsoft Office.
Microsoft Office с точки зрения СОМ
Microsoft Office является средой, в которой большая часть задач решается без использования программирования. Но ценность приложений Microsoft Office за – ключается в том, что все задачи решаются как традиционным способом (ручное редактирование), так и посредством применения программирования на известном языке VBA (Visual Basic for Application). Кроме того, приложения пакета снабжаются серверами СОМ, которые предоставляют интерфейс доступа к приложению и его объектам. Благодаря этому разработчик в среде Delphi имеет возможность, создав контроллер автоматизации, управлять сервером. Приложение Microsoft Office можно рассматривать как совокупность объектов с их методами и свойствами (они организуют основу программы). Как правило, в каждом приложении существует так называемый корневой объект, который носит название Application. Каждое приложение Microsoft Office имеет собственный корневой обект – Word. Application, Excel.Application. Приложение само является корневым объектом, несмотря на это, в объект Application встраиваются все остальные объекты (участники), которые являются свойствами главного объекта. Документ, созданный на базе СОМ, предоставляет большое количество разнообразных методов, но имеются и одинаковые методы в различных приложениях Microsoft Office. Например, Run, Quit, Activate.
При открытии любого приложения из пакета автоматически создается каркас нового документа, который представляет собой набор библиотек с классами. Объекты этих классов будут доступны в открытом документе. Задача разработчика клиента (контроллера автоматизации) – получить доступ к корневому объекту сервера, выстроить цепочку доступа к объектам-участникам (встроенным объектам), правильно передать параметры. Таким образом, получив доступ к объектам документа, можно проводить с ним различные манипуляции, редактировать его и т. д.
Объект Application
Безусловно, самым важным объектом в приложениях Microsoft Office является объект Application. Небольшой пример использования данного объекта продемонстрирует простоту программирования с применением СОМ. Для решения часто встречающихся задач используются уже хорошо нам известные компоненты среды Delphi. В случае технологии СОМ это не является исключением. Запустим сервер приложения Microsoft Word. Для этого выполним следующее.
1. Создаем новый проект.
2. На главную форму приложения помещаем компонент WordApplication вкладки Servers.
3. Задаем свойства компонента AutoConnect и AutoQuit значением True.
4. Запускаем созданное приложение.
На первый взгляд, ничего существенного не происходит, но результат работы программы можно заметить путем просмотра запущенных процессов (не путать с задачами). В приложении Диспетчер задач среди процессов различных приложений можно увидеть WordCOM. ехе. Этот факт говорит нам о том, что созданное нами посредством СОМ приложение подключилось к серверу Microsoft Word и запустило его. Фактически в системе произошло следующее. В реестре был найден зарегистрированный ранее СОМ-сервер приложения Microsoft Word. Используя все тот же реестр, был найден путь к программе и произведен ее запуск. Вследствие этого мы заметили появление процесса, отвечающего за работу редактора Microsoft Word.
Но для того чтобы лучше понять запуск приложения Microsoft Word, приведем фрагмент исходного текста, результат работы которого аналогичен (листинг 9.1).