Связанные объекты и моникеры
Связанные объекты, такие как внедренные объекты, полагаются на обработчик объектов для взаимодействия с серверными приложениями. Однако связанный объект управляет именованием и отслеживанием источников ссылок. Связанный объект действует как сервер внутрипроцессного процесса. Например, при активации связанный объект находит и запускает серверное приложение OLE, которое является источником ссылки.
Обработчик связанного объекта состоит из двух основных компонентов: компонента обработчика и компонента связывания. Компонент обработчика содержит элементы управления и удаленного взаимодействия, а также функции, такие как обработчик для внедренного объекта. Компонент связывания имеет собственный контроллер и кэш и предоставляет доступ к структурированным хранилищам объекта. Контроллер компонентов связывания поддерживает именование источников с помощью моникеров и привязки, процесса поиска и запуска источника ссылки. (Дополнительные сведения о моникерах и привязках см. в объектной модели компонента.)
Когда пользователь изначально создает связанный объект или загружает существующий из хранилища, контейнер загружает экземпляр компонента связывания в память вместе с обработчиком объектов. Компонент связывания предоставляет интерфейсы (в частности, IOleLink), которые определяют объект как ссылку и позволяют управлять именованием, отслеживанием и обновлением источника ссылки.
Реализуя интерфейс IOleLink, связанный объект предоставляет контейнер функциям, поддерживающим связывание. Только связанные объекты реализуют IOleLinkи запрашивая этот интерфейс, контейнер может определить, внедрен или связан ли данный объект. Наиболее важная функция, предоставляемая IOleLink позволяет контейнеру привязаться к источнику связанного объекта, то есть активировать подключение к документу, включающее собственные данные связанного объекта. IOleLink также определяет функции для управления сведениями о связанном объекте, например кэшированные данные презентации и расположение источника ссылки.
При сохранении составного документа, содержащего связанный объект, данные ссылки сохраняются с источником ссылки, а не с контейнером. Сохраняются только сведения о его имени и расположении вместе с составным документом. Это поведение отличается от внедренного объекта, данные которого хранятся вместе с его контейнером.
Приложения-контейнеры могут предоставлять сведения о внедренных объектах, таких как последние или их части, могут выступать в качестве источников ссылок. Реализуя поддержку связывания внедренных объектов контейнера, можно сделать вложенные внедрения возможными, что позволяет пользователю отслеживать исходные данные каждого внедренного объекта, к которому требуется ссылка. Например, если пользователь хочет внедрить лист Microsoft Excel в Microsoft Word, а лист содержит растровое изображение, созданное в Paintbrush, пользователь может связаться с копией растровой карты, содержащейся на листе, а не исходной.
Связанные разделы