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

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

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

COM

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

Структурированные служба хранилища

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

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

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

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

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

Передача данных

Структурированные служба хранилища