ActiveX объекты.

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

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

ActiveX объекты объединяются в библиотеки, файлы с расширением .ocx, и поставляются вместе с приложениями и самостоятельно. ActiveX объекты работают в адресном пространстве приложения – приемника, следовательно, обладают всеми его полномочиями в отношении к операционной системе и к другим приложениям.

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

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

Следует заметить, что иногда названия ActiveX-объект и COM-объект употребляют как синонимы. По-видимому, это не совсем верно. COM-объект в отличие от ActiveX-объекта не реагирует на действия пользователей. Между этими понятиями часто возникает путаница. Когда это будет для нас важно, мы будем считать понятие COM объекта более широким, а ActiveX – частным. Разница заключается в двух характеристиках: 1) том, как эти объекты создаются и выполняются операционной системой – существенная характеристика; 2) ActiveX объектами мы будем называть действительно активные объекты, то есть, реагирующие на действия пользователя – менее существенная характеристика.

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

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

COM-объект – это, скорее внешний по отношению к вашему приложению объект. Его экземпляры следует создавать, пользуясь встроенными средствами такими, как NEW, CREATEOBJECT и т.п.