Поделиться через


Составные документы

Составные документы OLE позволяют пользователям работать в одном приложении для управления данными, написанными в различных форматах и производных от нескольких источников. Например, пользователь может вставить в документ обработки слов граф, созданный во втором приложении, и звуковой объект, созданный в третьем приложении. Активация графа приводит к загрузке второго приложения его пользовательского интерфейса или по крайней мере той части, содержащей средства, необходимые для изменения объекта. Активация звукового объекта приводит к тому, что третье приложение воспроизводит его. В обоих случаях пользователь может управлять данными из внешних источников из контекста одного документа.

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

COM

Составной объект документа — это, по сути, COM-объект, который может быть внедрен или связан с существующим документом. В качестве COM-объекта составного документа предоставляется интерфейс IUnknown, с помощью которого клиенты могут получать указатели на другие интерфейсы, включая несколько, например IOleObject, IOleLinkи IViewObject2, которые предоставляют специальные функции, уникальные для составных объектов документов.

структурированное хранилище

Составной объект документа должен реализовать интерфейсы IPersistStorage или, при необходимости, интерфейсы IPersistStream для управления собственным хранилищем. Контейнер, используемый для создания составных документов, должен предоставить интерфейс IStorage, с помощью которого объекты хранят и извлекают данные. Контейнеры почти всегда предоставляют экземпляры IStorage, полученные из реализации составных файлов OLE. Контейнеры также должны использовать интерфейсы IPersistStorage и/или IPersistStream.

однородная передача данных

Приложения, поддерживающие составные документы, должны реализовывать IDataObject так как внедренные объекты и связанные объекты начинаются с передачи данных с помощью специальных форматов буфера обмена OLE, а не стандартных форматов буфера обмена Microsoft Windows. Другими словами, форматирование данных в виде внедренного или связанного объекта — это просто один из вариантов, предоставляемых универсальной моделью передачи данных OLE.

Составная технология документов OLE обеспечивает как разработчикам программного обеспечения, так и пользователям. Вместо того, чтобы чувствовать себя обязанным обрамить все возможные функции в одном приложении, разработчики программного обеспечения теперь свободны, если они хотят, чтобы разрабатывать небольшие, более ориентированные приложения, которые полагаются на другие приложения для предоставления дополнительных функций. В случаях, когда разработчик программного обеспечения решает предоставить приложение с возможностями за пределами основных функций, разработчик может реализовать эти дополнительные службы в виде отдельных БИБЛИОТЕК DLL, которые загружаются в память только в том случае, если их службы необходимы. Пользователи получают выгоду от меньшего, более быстрого и более способного программного обеспечения, которое они могут смешивать и соответствовать по мере необходимости, управляя всеми необходимыми компонентами из одного главного документа.

Дополнительные сведения см. в следующих разделах:

передачи данных

структурированного хранилища