Метод IOleObject::SetMoniker (oleidl.h)

Уведомляет объект о моникере контейнера, собственном моникере объекта относительно контейнера или полном моникере объекта.

Синтаксис

HRESULT SetMoniker(
  [in] DWORD    dwWhichMoniker,
  [in] IMoniker *pmk
);

Параметры

[in] dwWhichMoniker

Моникер передается в pmk. Возможные значения из перечисления OLEWHICHMK.

[in] pmk

Указатель на то, куда следует вернуть моникер.

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

Этот метод возвращает значение S_OK при успешном завершении. Другие возможные возвращаемые значения включают следующее.

Код возврата Описание
E_FAIL
Операция не удалась.

Комментарии

Контейнер, поддерживающий ссылки на внедренные объекты, должен иметь возможность информировать внедренный объект при изменении его моникера. В противном случае последующие попытки связывания клиентов выполнить привязку к объекту завершатся ошибкой. Метод IOleObject::SetMoniker предоставляет контейнеру один из способов передачи этих сведений.

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

Моникер объекта относительно его контейнера хранится обработчиком объекта как часть постоянного состояния объекта. Однако моникер контейнера объекта не должен постоянно храниться внутри объекта, так как контейнер можно переименовать в любое время.

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

Контейнер вызывает IOleObject::SetMoniker , когда контейнер был переименован, а внедренные объекты контейнера в настоящее время или могут служить источниками ссылок. Контейнеры вызывают SetMoniker главным образом в контексте связывания, так как внедренный объект уже знает о своем моникере. Даже в контексте связывания вызов этого метода необязателен, так как объекты могут вызывать IOleClientSite::GetMoniker для принудительного назначения нового моникера.

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

После получения вызова IOleObject::SetMoniker объект должен зарегистрировать свой полный моникер в таблице выполняющихся объектов и отправить уведомление IAdviseSink::OnRename всем приемникам рекомендаций, которые существуют для объекта.

Требования

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

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

CreateItemMoniker

IAdviseSink::OnRename

IOleClientSite::GetMoniker

IOleObject

IOleObject::GetMoniker