Составные документы
Составные документы 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, которые загружаются в память только в том случае, если их службы необходимы. Пользователи получают выгоду от меньшего, более быстрого и более способного программного обеспечения, которое они могут смешивать и соответствовать по мере необходимости, управляя всеми необходимыми компонентами из одного главного документа.
Дополнительные сведения см. в следующих разделах:
- Контейнеры и серверы
- Связывание и внедрение
- Обработчики объектов
- Серверы внутрипроцессной обработки
- Связанные объекты и моникеры
- Уведомления
- Составные интерфейсы документов
- Состояния объектов
- Реализация активации на месте
- Создание связанных и внедренных объектов из существующих данных
- Просмотр кэширования
См. также