Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 2. Основы офисного программирования.doc
Скачиваний:
8
Добавлен:
01.05.2025
Размер:
4.04 Mб
Скачать

Глава 10.Использование Automation при интегрировании компонентов Microsoft Office

Возможность построения пользовательских приложений на основе существующих программных компонентов позволяет разработчикам создавать новые инструменты и приложения с минимальными затратами.

10.1.Технология ActiveX

Технология ActiveX обеспечивает мощные средства разработки приложений: внедрение объекта из одного приложения в документ, созданный другим приложением с возможностью его редактирования на месте и Automation, с помощью которого можно программным путем устанавливать свойства, вызывать методы и обрабатывать события как для внедренных объектов, так и для объектов других (внешних) приложений.

ActiveX – это технология, разработанная корпорацией Microsoft, широко применяемая в качестве открытого стандарта, совместного использования данных различными приложениями. Любой разработчик имеет прямой доступ к спецификации (описанию) ActiveX и может создавать приложения, удовлетворяющие требованиям этой спецификации. Приложения могут поддерживать эту технологию в различной степени (например, программный продукт может поддерживать только возможность редактирования объектов на месте, но не поддерживать Automation).

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

С введением технолог8ии ActiveX фирма Microsoft ввела также новую терминологию программируемых объектов: термин «ActiveX» во многих случаях заменяет термин «OLE» (например: вместо «объект OLE» говорят «компонент ActiveX» или «объект ActiveX», вместо «OLE Automation» – «ActiveX Automation» или просто «Automation»).

Преимущества ActiveX проявляются при объединении в одном проекте наборов объектов, представляющие различные приложения. ActiveX дает возможность разработчикам помещать (или внедрять) объект, созданный в одном приложении, в документ, созданный другим приложением.

10.2.Компонентная модель объектов, внедрение и связывание

Компонентная модель объектов (COM – Component Object Model), являющаяся базовым элементом технологии ActiveX фирмы Microsoft, позволяет пользователям создавать «составные» документы, а разработчикам – «составные» приложения. В составных документах могут содержаться материалы, созданные с помощью различных приложений, а в составных приложениях – различные объекты (из стандартных библиотек или пользовательские), помогающие создать такие материалы. Например, приложение, созданное на основе Access, может использовать объекты Excel в качестве объектов, выполняющих финансовые расчеты.

Automation является одним из наиболее важных средств ActiveX. Это средство позволяет применять в приложении подпрограммы, управляющие объектами в другом приложении. Более ранняя технология организации взаимодействия двух приложении называлась DDE (Dynamic Data Exchange). При использовании DDE приложения вступали для обмена информацией в диалог. Но при таком способе организации взаимодействия приложения работали медленно. Automation является значительно более быстрым и легким в использовании средством.

Ключевым понятием, лежащим в основе всех интегрируемых приложений, является служба (сервис). Приложение, поддерживающее Automation (OLE Automation), можно рассматривать как набор служб, которыми это приложение может пользоваться. «Специализация» продуктов семейства Microsoft Office такова:

  • Access – службы базы данных (СУБД), просмотр и ввод данных, формы, отчеты;

  • Excel – службы расчетов, просмотра, финансового анализа и представления данных;

  • Word – службы текстового процессора и настольной издательской системы, создание отчетов;

  • PowerPoint – службы представления информации, презентации;

  • Office Binder – службы хранения и использования данных, интеграции документов;

  • Microsoft Outlook – службы управления информацией, электронная почта, управление заданиями, база контактов, планирование групповой работы;

  • Project – управление проектами;

  • Microsoft Internet Explorer – службы просмотра Web.

  • Ценой удобства доступа к такому широкому набору служб является производительность. Более высокопроизводительные приложения можно построить с использованием объектов, написанных на языках типа C/C++.

Приложение поддерживает Automation одним из двух способов: приложение может быть объектом Automation (сервер Automation – это приложение, предоставляющее свои объекты для получения команд от управляющего приложения) и управляющим приложением (клиент Automation или контроллер Automation – это приложение, которое воздействует на объекты Automation и посылает команды серверу Automation).

Некоторые приложения Microsoft Office могут быть только серверами Automation, другие могут выступать и в роли клиентов. Степень поддержки приложениями MS Office Automation показана в табл. 6.

Frame6

Технически объект в программировании объединяет в себе данные с функциями, использующими эти данные, т.е. в объекте данные объединяются с механизмами доступа к ним. Microsoft расширило понятие объекта до понятия «программируемого объекта». Поведение таких объектов изменяется с помощью Automation. Это позволяет конструировать приложения, управляющие другими объектами-приложениями.

COM определяет интерфейс, позволяющий объектам, написанным разными разработчиками, на разных языках программирования, работать друг с другом. Общий язык программирования для всех продуктов Microsoft – VBA. Он используется для программного управления объектами Automation.

Спецификация COM определяет, как приложения управляют объектами. Возможны два способа совместного использования объектов: пользователи могут внедрить объекты других приложений в свои файлы (связать их), что позволяет создавать составные документы, которые содержат данные, порожденные разными приложениями; разработчики могут построить приложения, которые делают общедоступными свои объекты, т.е. разработчики могут интегрировать существующие функциональные возможности других продуктов.

OLE (Object Linking and Embedding – связывание и внедрение объектов) как часть спецификации COM, предоставляет пользователям возможность создания составных документов путем сопоставления объекту двух типов данных: собственно данных объекта и данных для его представления. С помощью OLE пользователи могут связывать или внедрять объекты других приложений.

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

При внедрении объектов в файл в него вносятся и данные о представлении объекта, и данные, необходимые для его редактирования внутри составного документа. Таким образом, все данные, созданные разными приложениями, содержатся в одном документе (файле). Это приводит к «раздуванию» файла составного документа.

Спецификация COM включает в себя часть, называемую Automation, которая позволяет выполнять разработчикам следующие действия:

  • управлять с помощью программного кода объектами, созданными другими приложениями;

  • создавать и использовать другие пользовательские объекты, поддерживающие спецификацию COM;

  • управлять с помощью программного кода связыванием и внедрением объектов.

Приложения, которые управляют доступными объектами других приложений, называются контроллерами Automation (или клиентами Automation), а приложения, которые предоставляют такие объекты в качестве «строительных блоков», – серверами Automation.

Для создания пользовательских объектов используются языки программирования (например, С/С++), а для использования этих объектов, предоставляемых прикладными программами в распоряжение других программ, можно воспользоваться любым языком программирования, обеспечивающим поддержку контроллеров Automation. При проектировании интегрированного приложения можно выбрать одну из трех моделей:

  • Модель центрального приложения – одно из приложений Office управляет остальными. Разработчики пишут код только для управляющего приложения.

  • Модель исполняемого файла – все компоненты приложений Office управляются из самостоятельного EXE-файла. Кроме его программирования, разработчики могут писать код и для приложений подключаемых компонентов. «Главное» приложение может быть написано на любом языке программирования (например, Visual Basic).

  • Модель распределения ролей – каждое приложение Office и исполняемый EXE-файл разработчиков выполняют свою часть работы, код исполняется внутри «родного» приложения. При необходимости приложение само активизирует нужный компонент.