Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7_TKP_ActiveX.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
209.41 Кб
Скачать

7.6.3.1 Базовые интерфейсы элементов управления ActiveX.

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

С формальной точки зрения, в отличие от OLE–документов, элемент управления ActiveX обязан поддерживать лишь интерфейс Iunknown. Остальные интерфейсы включаются в эти элементы на этапе их разработке только в том случае, если они действительно необходимы. Этим и объясняется малый объем кода ActiveX-элементов по сравнению с OLE–документами. Однако для реализации основных функций, присущих элементам управления ActiveX, для них должно быть реализовано некоторое подмножество из набора базовых (стандартных) интерфейсов ActiveX, показанных на рис. 7.1. Назначение этих интерфейсов (а также некоторых других, использующихся в ActiveX-элементах) указано в табл. 7.2.

Доступ к методам интерфейсов осуществляется методом invoke интерфейса Idispatch.

Таблица 7. 2.

Базовые интерфейсы элементов управления ActiveX

Интерфейс

Описание

IOleObject

Предоставляет важнейшие методы для взаимодействия элемента управления с контейнером

IOleControl

Поддерживает базовую функциональность элемента управления: установку свойств и реакцию на события

IOlelnPlaceObject

Управляет активизацией и деактивизацией элемента управления в контейнере

IOlelnPlaceActiveObject

Обеспечивает прямой канал для взаимодействия между элементом управления и окном-рамкой контейнера, содержащим данный элемент

IObjectSafety

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

IPersistPropertyBag

Предоставляет методы для сохранения и загрузки индивидуальных свойств элемента управления в хранилище

IpersistStreamlnit

Обеспечивает инициализацию хранилища, предназначенного для сохранения значений свойств элемента управления на основе использования потоков внутри хранилища

IPersistStorage

Обеспечивает для элемента управления ссылку на экземпляр хранилища, предоставленного контейнером для сохранения свойств элемента

IPerPropertyBrowsing

Предоставляет методы для передачи значений свойств элемента управления в страницу свойств

ISimpleFrameSite

Обеспечивает функционирование элемента управления как оконного элемента для размещения в нем других элементов управления AcitveX

ISpecifyPropertyPages

Содержит метод, возвращающий информацию о наличии и поддержке данным элементом управления страниц свойств

IViewObject

Обеспечивает взаимодействие элемента управления и контейнера для передачи сообщения контейнеру об изменениях во внешнем виде элемента управления

IViewObject2

Расширение интерфейса IViewObject. Предоставляет информацию о размерах области прорисовки элемента управления