Технология OLE
Скорость обработки и обмена информации между различными приложениями в операционных системах компьютерной техники стала возможной благодаря появлению, усовершенствованию и повсеместному внедрению технологии OLE.
Разработка этой программы – большое достижение корпорации Microsoft. Поиск решений для расширения функциональных возможностей интеграции данных привели сначала к появлению, а затем к активному использованию новых принципов обмена информации. Ежедневно пользователи применяют OLE при работе с разными приложениями. Будет интересно узнать, что это такое и как работает.
История появления
Предшественницей новой технологии является Dynamic Data Exchange – DDE, программа, которая работала по протоколу несинхронизированной связи. На практике это выглядело следующим образом: для установления канала связи между данными сервера после передачи запроса требовалось ожидание отклика. То есть, приложение должно было распознать возможные ошибки, существовал риск прерывания связи, тайм-аутов.
Для улучшения качества работы DDE требовалось новое решение, которое и воплотилось в технологии OLE.В чем ее сущность? Object Linking and Embedding (аббревиатура – OLE) – это возможность связывать и внедрять объекты, то есть, программа обеспечивает активацию нового объекта непосредственно в документе.
Новый принцип работы в буфере обмена (в области оперативной памяти, предназначенной для временного хранения созданного объекта) совершенствовался:
- Версия 1.0 появилась в 1990 году и позволила оперировать активными соединениями между двумя документами и внедрять один в другой вне зависимости от типа (текст, фото и прочие). Поскольку первый вариант разрабатывался на базе DDE, то остались основные недостатки несинхронной связи (например, быстрое нарушение связи при изменении маршрута доступа).
- Версия 1.1 дала возможность сохранять исходник в собственном формате, что позволило внедрять из буфера обмена скопированную часть другого документа.
- Версия 2.0 фактически является надстройкой над архитектурой COM, резвившейся на базе версии 1.1. Component Object Model – это модель многокомпонентных объектов, которая обеспечивает объединение отличающихся по формату текстов, рисунков, фото из любых источников.
- ActiveX – это современная версия OLE 2.0, которая была переименована в 1996 году. Изначально она использовалась при необходимости вставить мультимедийные данные.
На данный момент технология OLE занимается внедрением и связыванием составных документов, а группа ActiveX работает в глобальном масштабе: с приложениями, библиотеками, системным программным обеспечением.
OLE на практике
Итак, разработка корпорации Microsoft, внедренная в современные операционные системы, позволяет через буфер обмена работать с разными программами, переносить информационные блоки из одной в другую, формировать и редактировать составной документ из файлов разного типа. Этой возможностью ежедневно пользуются, например, при работе с CorelDRAW или графическим редактором WordPad.
Созданные в одном приложении объекты благодаря технологии связывания и обмена позволяет перенести его в другой. Одно из них становится приложением-сервером, второе – приложением-клиентом. Допустим, вы хотите поместить созданную электронную таблицу в CorelDRAW, таблица будет сервером, а CorelDRAW – клиентом. Данные помещаются в буфер обмена и становятся для многократного редактирования, причем сохраняется последняя версия, а остальные данные удаляются.
Возможности
Object Linking and Embedding обеспечивает новый качественный уровень работы и взаимодействия файлов разного типа и открывает следующие возможности:
- совмещение и объединение разнообразных файлов (рисунки, текст, таблицы, диаграммы, фото, базы данных и прочие виды);
- запоминание: связывание или встройка фрагментов позволяет сохранять сведения об их формате, а также о приложениях, работающих с файлами этого типа;
- программа, в которой хранится встроенная вставка, поддерживает целостность объекта, оставляя при этом доступными функции по перемещению, отображению и копированию как внутри самого объекта, так и между приложениями;
- редактирование: автоматический вызов объекта для редактирования или импорт функций редактирования.
Расширенный функционал работы открывает перед пользователем самые широкие возможности по редактированию и внедрению фрагментов в начальный документ.
Использование
Как понятно из названия технологии, основных функций у нее две:
Рассмотрим, что дает каждая из них пользователям в повседневной работе.
Связывание. Установление связи происходит следующим образом: отдельно создаются исходник и вставка (последниая обязательно сохраняется в файле, после чего импортируется в исходник). Для файлов «наглядного типа» (текст, рисунок) активизация связи приведет к автоматическому запуску приложения, обеспечивающего возможность редактирования. Для данных, которые не могут быть представлены в таком формате (например, видео или звуковая запись) существует альтернатива – сохранение в виде пиктограммы. Двойной щелчок по ней приведет к активации связи и воспроизведению видеозаписи или звукового сигнала. Обратите внимание: послу связывания редактирование данных в одном приложении приводит к автоматическому изменению их в другом.
Внедрение. Внедрение – несколько другой формат работы, при использовании этой функции объект существует исключительно в одном документе, только в том месте, куда его внедрили. При этом остаются доступными различные функции, например, редактирования или переноса созданного документа на разные компьютеры.
Благодаря технологии OLE пользователи получили самые широкие возможности при работе с документами разного типа, их взаимной интеграции и редактированию.
Поддержка OLE OLE Background
OLE — это механизм, позволяющий пользователям создавать и редактировать документы, содержащие элементы или объекты, созданные несколькими приложениями. OLE is a mechanism that allows users to create and edit documents containing items or «objects» created by multiple applications.
OLE изначально является акронимом для связывания и внедрения объектов. OLE was originally an acronym for Object Linking and Embedding. Однако теперь он называется OLE. However, it is now referred to as OLE. Части OLE, не связанные с связыванием и внедрением, теперь являются частью активной технологии. Parts of OLE not related to linking and embedding are now part of Active technology.
Документы OLE, исторические, называемые составными документами, легко интегрируют различные типы данных или компоненты. OLE documents, historically called compound documents, seamlessly integrate various types of data, or components. В качестве примеров компонентов, найденных в документах OLE, обычно используются звуковые клипы, электронные таблицы и точечные рисунки. Sound clips, spreadsheets, and bitmaps are typical examples of components found in OLE documents. Поддержка OLE в приложении позволяет пользователям использовать документы OLE, не беспокоясь о переключении между различными приложениями. OLE выполняет переключение самостоятельно. Supporting OLE in your application allows your users to use OLE documents without worrying about switching between the different applications; OLE does the switching for you.
Приложение-контейнер используется для создания составных документов, а также серверного приложения или приложения-компонента для создания элементов в документе-контейнере. You use a container application to create compound documents and a server application or component application to create the items within the container document. Любое записываемое приложение может быть контейнером, сервером или обоими приложениями. Any application you write can be a container, a server, or both.
В состав OLE входят множество различных концепций, которые работают с целью беспрепятственного взаимодействия между приложениями. OLE incorporates many different concepts that all work toward the goal of seamless interaction between applications. В число этих областей входят следующие. These areas include the following:
Связь и внедрение Linking and Embedding
Связывание и внедрение — это два метода хранения элементов, созданных в документе OLE, которые были созданы в другом приложении. Linking and embedding are the two methods for storing items created inside an OLE document that were created in another application. Общие сведения о различиях между ними см. в статье OLE Background: компоновка и внедрение. For general information on the differences between the two, see the article OLE Background: Linking and Embedding. Более подробные сведения см. в статье контейнеры и серверыстатей. For more detailed information, see the articles Containers and Servers.
Активация In-Place (визуальное редактирование) In-Place Activation (Visual Editing)
Активация внедренного элемента в контексте документа-контейнера называется активацией на месте или визуальным редактированием. Activating an embedded item in the context of the container document is called in-place activation or visual editing. Интерфейс приложения контейнера изменяется для включения функций приложения компонента, создавшего внедренный элемент. The container application’s interface changes to incorporate the features of the component application that created the embedded item. Связанные элементы никогда не активируются на месте, так как фактические данные для элемента содержатся в отдельном файле вне контекста приложения, содержащего ссылку. Linked items are never activated in place because the actual data for the item is contained in a separate file, out of the context of the application containing the link. Дополнительные сведения об активации на месте см. в статье Активация. For more information on in-place activation, see the article Activation.
Связывание и внедрение и встроенная активация предоставляют основные возможности редактирования визуальных элементов OLE. Linking and embedding and in-place activation provide the main features of OLE visual editing.
Автоматизация автоматизации позволяет одному приложению управлять другим приложением. Automation Automation allows one application to drive another application. Управляющее приложение называется клиентом автоматизации, а управляемое приложение называется сервером автоматизации или компонентом автоматизации. The driving application is known as an automation client, and the application being driven is known as an automation server or automation component. Дополнительные сведения об автоматизации см. в статье Клиенты автоматизации и серверы автоматизации. For more information on automation, see the articles Automation Clients and Automation Servers.
Автоматизация работает как в контекстах OLE, так и в активных технологиях. Automation works in both OLE and Active technology contexts. Можно автоматизировать любой объект, основанный на COM. You can automate any object based on COM.
Составные файлы Compound Files
Составные файлы предоставляют стандартный формат файлов, который упрощает структурированное хранение составных документов для приложений OLE. Compound files provide a standard file format that simplifies structured storing of compound documents for OLE applications. В составном файле хранилища имеют множество функций каталогов и потоков, имеющих множество функций файлов. Within a compound file, storages have many features of directories and streams have many features of files. Эта технология также называется структурированным хранилищем. This technology is also called structured storage. Дополнительные сведения о составных файлах см. в разделе контейнеры статей: составные файлы. For more information on compound files, see the article Containers: Compound Files.
Однородное Передача данных Uniform Data Transfer
Универсальный Передача данных (UDT) — это набор интерфейсов, позволяющих отправлять и получать данные стандартным образом независимо от фактического метода передачи данных. Uniform Data Transfer (UDT) is a set of interfaces that allow data to be sent and received in a standard fashion, regardless of the actual method chosen to transfer the data. Определяемый пользователем тип формирует базу для передачи данных путем перетаскивания. UDT forms the basis for data transfers by drag and drop. UDT теперь выступает в качестве базиса для существующих данных Windows, таких как буфер обмена и динамический обмен данными (DDE). UDT now serves as the basis for existing Windows data transfer, such as the Clipboard and dynamic data exchange (DDE). Дополнительные сведения о определяемых пользователем параметрах см. в статьях объекты данных и источники данных (OLE). For more information on UDT, see the article Data Objects and Data Sources (OLE).
Перетаскивание Drag and Drop
Перетаскивание — это простая в использовании методика прямого управления для переноса данных между приложениями, между окнами в приложении или даже в одном окне приложения. Drag and drop is an easy-to-use, direct-manipulation technique to transfer data among applications, among windows within an application, or even within a single window in an application. Данные, подлежащей передаче, выбираются и перемещаются в нужное место назначения. The data to be transferred is selected and dragged to the desired destination. Перетаскивание основано на равномерной переносе данных. Drag and drop is based on uniform data transfer. Дополнительные сведения о перетаскивании см. в статье перетаскивание. For more information on drag and drop, see the article Drag and Drop.
модель COM Component Object Model
Модель COM предоставляет инфраструктуру, используемую при взаимодействии объектов OLE друг с другом. The Component Object Model (COM) provides the infrastructure used when OLE objects communicate with each other. Классы OLE MFC упрощают работу с COM для программиста. The MFC OLE classes simplify COM for the programmer. COM является частью активной технологии, так как объекты COM лежат в базе технологии OLE и Active. COM is part of Active technology, because COM objects underlie both OLE and Active technology. Дополнительные сведения о COM см. в разделах библиотеки активных шаблонов (ATL) . For more information about COM, see the Active Template Library (ATL) topics.
Некоторые из наиболее важных разделов OLE рассматриваются в следующих статьях: Some of the more important OLE topics are covered in the following articles:
Для получения общих сведений о OLE, не найденных в указанных выше статьях, выполните поиск по запросу OLE в документация Майкрософт. For general OLE information not found in the above articles, search for OLE in Microsoft Docs.