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