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


Метод IOleLink::SetSourceMoniker (oleidl.h)

Задает моникер для источника ссылки.

Синтаксис

HRESULT SetSourceMoniker(
  [in] IMoniker *pmk,
  [in] REFCLSID rclsid
);

Параметры

[in] pmk

Указатель на интерфейс IMoniker на моникере, который идентифицирует новый источник ссылки связанного объекта. Значение NULL нарушает связь.

[in] rclsid

ИДЕНТИФИКАТОР CLSID источника ссылки, который связанный объект должен использовать для доступа к сведениям о связанном объекте, если он не привязан.

Возвращаемое значение

Этот метод возвращает значение S_OK при успешном завершении.

Комментарии

Примечания к вызывающим абонентам

Приложение-контейнер может вызывать IOleLink::SetSourceMoniker , когда пользователь изменяет источник ссылки или разрывает ссылку. Обратите внимание, что для этого требуется, чтобы контейнер использовал функцию MkParseDisplayName , чтобы создать моникер из отображаемого имени, введенного конечным пользователем. Если вы предпочитаете, чтобы связанный объект выполнял синтаксический анализ, контейнер может вызывать IOleLink::SetSourceDisplayName вместо IOleLink::SetSourceMoniker.

Пользователь изменяет источник ссылки или разрывает ее с помощью диалогового окна Ссылки . Если для отображения диалогового окна Ссылки используется функция OleUIEditLinks, необходимо реализовать интерфейс IOleUILinkContainer. Диалоговое окно вызывает реализации IOleUILinkContainer::SetLinkSource и IOleUILinkContainer::CancelLink; реализация этих методов может вызывать IOleLink::SetSourceMoniker.

Если связанный объект в настоящее время привязан к источнику ссылки, реализация связанного объекта IOleLink::SetSourceMoniker закрывает ссылку перед изменением моникера.

Примечания для разработчиков

Контракт IOleLink не указывает, как связанный объект хранит или использует моникер источника ссылок. Предоставленная реализация сохраняет абсолютный моникер, указанный при создании ссылки или при изменении моникера; Затем он вычисляет и сохраняет относительный моникер. Будущие реализации могут управлять моникерами по-разному, чтобы обеспечить более эффективное отслеживание моникеров. Абсолютный моникер предоставляет полный путь к источнику ссылки. Связанный объект использует этот абсолютный моникер и моникер составного документа для вычисления относительного моникера, который идентифицирует источник ссылки относительно составного документа, содержащего ссылку.

pmkCompoundDoc-RelativePathTo>(pmkAbsolute, ppmkRelative)

При привязке к источнику ссылки связанный объект сначала пытается выполнить привязку с помощью относительного моникера. Если это не удается, он пытается привязать абсолютный моникер.

Когда связанный объект успешно привязывается с помощью относительного или абсолютного моникера, он автоматически обновляет другой моникер. Связанный объект также обновляет оба моникера при привязке к источнику ссылки и получении уведомления о переименовании с помощью метода IAdviseSink::OnRename . Приложение-контейнер также может использовать метод IOleLink::SetSourceDisplayName для изменения моникера ссылки.

Реализация связанного объекта IPersistStorage::Save сохраняет как относительный, так и абсолютный моникер.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header oleidl.h

См. также раздел

IOleLink

IOleLink::GetSourceMoniker

IOleLink::SetSourceDisplayName

IOleUILinkContainer

OleUIEditLinks