Важный вопрос в плане того, что в минимальном виде нужно четкое понимание. Итак, развивалось все так.
COM – OLE – VBX - OCX – ActiveX
На все эти технологии были созданы соответствующие спецификации. Эти спецификации наверно рано или поздно мы переведем и поместим на сайт, а пока вот так называются последние -
OCX – OCX 96 ActiveX – OLE Controls/COM Objects for the Internet
ActiveX это 32 разрядные элементы которые базируются на технологии COM и которые поддерживают интерфейс элементов управления. Этот интерфейс может предоставлять
Свойства (properties) Методы (methods) События(event)
Спецификация ActiveX в минимальном виде требует только одного интерфейса IUnknown (Шаг 18 - Интерфейс IUnknown). Конечно с этим интефейсом далеко не уйдешь так как он нечего не умеет делать. Все остальные интефейсы являются необязательными. Но естественно реальный элемент ActiveX содержит множество интрефейсов. В спецификации ActiveX описываеться какие интефейсы и для чего используются в добавление к описанным в OCX 96. Для информации контейнеру AcitveX поддерживает бибилиотеку типов в которой описываються свойства, методы и события. Эта библиотека может быть как отдельном файле tlb так и внутри элемента. Существенное отличие ActiveX от OCX это возможность использования ActiveX для Web приложений.
В документации в том числе и в MSDNActiveX раньше было OLE. Вопрос запутанные совсем. В том числе и требования к ActiveX. Например, для использования ActiveX в VB требуется еще один интерфейс IDispatch. Нужно понимать это так, спецификация ActiveX определяет только минимальный необходимый интерфейс для работы с объектом, а это IUnknown. Несмотря на то, что в реальной жизни такой элемент не имеет смысла.