Вопрос

Я не могу обернуть голову в различия между этими терминами.

Являются ли COM и ActiveX синонимами?

Является ли объект ActiveX просто объектом COM, который предоставляет IDispatch?

На многих старых страницах MSDN упоминается IDispatch без контекста COM. Есть ли у него отдельная история, и он был только что представлен под «зонтиком» COM позже в его жизненном цикле?

Где вписывается OLE? Является ли его (значительное) присутствие в именах MFC и MSDN в целом - все это просто наследие?

Википедия дает некоторое представление, но не очень. Я не мог найти более подробную справку.

Это было полезно?

Решение

Нашел несколько цитат из Программирование COM на примере :

  

Еще одна вещь, с которой вы быстро найдете   COM - это то, что у маркетинга была экскурсия   день с терминологией. Скорее тогда   помогая продвигать понимание,   вы найдете в большинстве случаев это способствует   тайна. ... OLE, ActiveX, Remotable   Объекты - что означает, что это   неделю? ...

     

COM развился из решения для   конкретная проблема - как разрешить слово   процессор для редактирования электронной таблицы в   письмо без выхода пользователя   текстовый процессор, чтобы сделать это. это   Решение было названо OLE. ... Тем не мение,   со вторым выпуском OLE (OLE2),   его создатели изменили OLE32.DLL на   раскрыть больше основных функций   OLE, чтобы его API можно было использовать   разрешить любому приложению доступ к   функциональность другая. Это API,   который не сильно изменился с 1993 года,   это то, что считается COM   API.   ...

     

Как только COM API был открыт,   Microsoft использовала это, чтобы создать то, что было   затем вызвал элементы управления OLE, чтобы   сложные элементы управления (например, кнопки   эта спираль, списки, которые играют   музыка) написана на Visual C ++, чтобы быть   доступны для Visual Basic   Приложения. В конце концов это то же самое   технология была использована для контроля   быть загруженным и используемым вашей сетью   браузер. На данный момент имя   изменено на элементы управления ActiveX или просто   обычный ActiveX исключительно для маркетинга   причины. Хотя вы можете упаковать любой   функциональность в элементе управления ActiveX,   его требования были   специализируется на поддержке пользователя   управление интерфейсом.

Мне все еще любопытно последнее предложение - должен ли COM-объект удовлетворять некоторым дополнительным требованиям, чтобы считаться элементом управления ActiveX? - но этого достаточно, чтобы отпустить.

Спасибо за ваши ответы!

Другие советы

ActiveX предназначен для COM, хотя ActiveX обычно используется в контексте «элементов управления ActiveX». которые являются объектами GUI.

IDispatch - это интерфейс, реализованный COM-объектами, так что клиентские программы могут динамически вызывать его методы во время выполнения (позднее связывание), а не во время компиляции, когда все методы и типы аргументов должны быть известны заранее. .

OLE - более ранняя версия COM.

Что касается OLE: COM имеет корни в OLE. Но сегодня можно считать, что OLE построен поверх COM и в основном используется для того, что предполагает его название - связывание и встраивание документов. Хотя сам COM определяет только пару интерфейсов (IUnknown, IClassFactory, IMalloc и т. Д.), OLE добавляет целый ряд дополнительных интерфейсов, таких как IMoniker, IOleItemComtainer и т. Д.

Подводя итог: COM является основой, ActiveX и OLE являются слоями поверх COM.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top