Архитектура Microsoft Windows для разработчиков


Кодовые компоненты ActiveX


Занятие 4. Кодовые компоненты ActiveX

(Продолжительность занятия 25 минут)

Кодовые компоненты ActiveX (ранее — OLE-серверы) — это библиотеки объектов, реализующие простой метод повторного использования кода. Библиотеки процедур могут использоваться и в других приложениях (например, Microsoft Office), в состав которых входит Microsoft Visual Basic for Applications. На этом занятии Вы узнаете о двух методах реализации кодовых компонентов ActiveX.

Изучив материал этого занятия, Вы сможете:

  • описать два способа реализации кодовых компонентов ActiveX;
  • создать динамическую библиотеку ActiveX средствами Visual Basic и воспользоваться ею в другом приложении;
  • объяснить, как работает исполняемый файл ActiveX;
  • описать сходства и различия однократно и многократно используемых компонентов.
  • Автоматизация и ActiveX

    Компоненты кода ActiveX предоставляют свои функциональные возможности приложениям-клиентам посредством OLE-автоматизации (OLE Automation). Клиентская программа использует код компонента, создавая объекты и обращаясь к их свойствам и методам; необходимые клиенту функциональные возможности обеспечивает компонент-сервер (рис. 8.3). Некоторые компоненты, в том числе и Microsoft Access, могут работать в обоих качествах: и как клиент, и как сервер. Однако чаще всего отдельно взятый компонент не способен одновременно исполнять обе роли.

    Автоматизация позволяет одному приложению манипулировать объектами другого приложения. Она основана на модели многокомпонентного объекта (Component Object Model, СОМ), способного предоставлять свои функции другим объектам или приложениям. Подобная «прозрачность» позволяет клиентам непосредственно обращаться к объектам и применять их инструментарий. Например, текстовый процессор «открывает» свои функции проверки орфографии, чтобы ими могли пользоваться другие программы. Тем самым посредством автоматизации разработчики вправе расширять возможности своих программ за счет уже готовых функций других приложений.

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

    Рис.8.3 Принцип работы кодовых компонентов ActiveX

    Динамические библиотеки ActiveX

    Компонент может работать как в пределах процесса (in-process), так и вне его (out-of-process). Внутрипроцессный компонент — динамическая библиотека ActiveX — выполняется в рамках процесса другого приложения. В качестве клиента может выступать как внешнее приложение, так и другой Внутрипроцессный компонент, используемый приложением. Все элементы управления ActiveX являются внутрипроцессными компонентами.



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