Component Object Model: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м CheckWiki: исправление отсутствующей секции примечаний.
мНет описания правки
Строка 6:
 
=== Путаница в названиях ===
В [[1996 год]]у Microsoft попыталась переименовать технологию OLE в ActiveX, но это удалось лишь частично. Например, технология OLE позволяла создавать так называемые ''элементы управления OLE'' ({{lang-en|OLE Controls}}, или ''OCX'') — повторно используемые элементы [[пользовательский интерфейс|пользовательского интерфейса]], которые были построены на стандарте COM. Эти элементы управления OLE были переименованы в ''элементы управления ActiveX'' ({{lang-en|ActiveX controls}}), хотя расширение [[файл]]ов «<ttcode>.ocx</ttcode>» за ними осталось. Затем Microsoft стала активно продвигать ActiveX в [[Интернет]], включив поддержку элементов ActiveX в свой [[браузер]] [[Microsoft Internet Explorer|Internet Explorer]]. В результате название [[Microsoft Object Linking and Embedding|OLE]] осталось только за технологией составных документов и локальных внедряемых объектов. А сетевые OLE-объекты стали называть по-новому — ActiveX.
 
Некоторая путаница между понятиями OLE и ActiveX сохраняется и до сих пор, но речь идёт об одних и тех же COM-технологиях. Причём иногда даже путают понятия OLE и COM. Так, внедряемые OLE-объекты иногда называют COM-объектами, а OLE-контейнеры — COM-контейнерами, и т. п.
Строка 16:
 
== Принципы работы COM ==
Основным понятием, которым оперирует стандарт COM, является ''COM-компонент''. Программы, построенные на стандарте COM, фактически не являются автономными программами, а представляют собой набор взаимодействующих между собой COM-компонентов. Каждый компонент имеет уникальный идентификатор ([[Globally Unique Identifier|GUID]]) и может одновременно использоваться многими программами. Компонент взаимодействует с другими программами через ''[[Microsoft Component Object Model interface|COM-интерфейсы]]'' — наборы абстрактных функций и свойств. Каждый COM-компонент должен, как минимум, поддерживать стандартный интерфейс «<ttcode>IUnknown</ttcode>», который предоставляет базовые средства для работы с компонентом. Интерфейс «<ttcode>IUnknown</ttcode>» включает в себя три метода: QueryInterface, AddRef, Release.
 
[[Microsoft Windows API|Windows API]] предоставляет базовые функции, позволяющие использовать COM-компоненты. Библиотеки [[Microsoft Foundation Classes|MFC]] и, особенно, [[Microsoft Active Template Library|ATL]]/[[Microsoft Windows Template Library|WTL]] предоставляют более гибкие и удобные средства для работы с COM. Библиотека ATL от Microsoft до сих пор остаётся самым популярным средством создания COM-компонентов. Но зачастую COM-разработка остаётся ещё довольно сложным делом, программистам приходится вручную выполнять многие рутинные задачи, связанные с COM (особенно это заметно в случае разработки на [[C++]]). Впоследствии (в технологиях COM+ и особенно {{nobr|[[Microsoft .NET|.NET]]}}) Microsoft попыталась упростить задачу разработки COM-компонентов.