ActiveX с нуля

Контрольные элементы ActiveX


ActiveX строится на основе COM. ActiveX используются как строительные блоки при создании пользовательского интерфейса. Сам элемент всегда реализуется внутри сервеpa. Сервер является динамически подключаемой библиотекой (DLL), подгружаемой во время работы приложения, и находится в файле с расширением  .OCX.

Итак, ActiveX – это OLE-сервер, который может быть использован в любом OLE - контейнере. Заметим, что использование ActiveX возможно только внутри процесса OLE – контейнера, поскольку элементы ActiveX представляют собой обычные библиотеки DLL и выполняются в рамках клиентского процесса, который их использует. Правда, сейчас почти все приложения реализуют свойства OLE – контейнера.

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

Свойства и методы

Контрольный элемент обеспечивает часть своих возможностей через набор интерфейсов, обеспечивающих свойства и методы. Контейнер может передавать свои свойства в контрольный элемент.

События

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

Визуальное представление

Контрольный элемент может поддерживать позиционирование и размещение в контейнере. Контейнер позиционирует контрольный элемент и определяет его размер.

Управление клавиатурой

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

Сохранение состояния

Контрольный элемент может сохранять свое состояние. Клиент управляет сохранением состояния встроенных элементов.

Регистрация и лицензирование.

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

Некоторые из указанных черт касаются и элементов ActiveX, и контейнеров.



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