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


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

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

Синтаксис

HRESULT Advise(
  [in]  IAdviseSink *pAdvSink,
  [out] DWORD       *pdwConnection
);

Параметры

[in] pAdvSink

Указатель на интерфейс IAdviseSink в приемнике рекомендаций вызывающего объекта.

[out] pdwConnection

Указатель на маркер, который можно передать в IOleObject::Unadvise для удаления консультативного подключения.

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

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

Код возврата Описание
E_OUTOFMEMORY
Недостаточно доступной памяти для этой операции.

Комментарии

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

Если контейнер и объект успешно устанавливают консультативное соединение, объект, получающий вызов, возвращает ненулевое значение через pdwConnection в контейнер. Если попытка установить консультативное подключение завершается неудачей, объект возвращает ноль. Чтобы удалить консультативное подключение, контейнер вызывает IOleObject::Unadvise и передает этот ненулевой маркер обратно в объект .

Объект может делегировать задание по управлению событиями рекомендаций и отслеживанию его владельцу OLE, на который можно получить указатель, вызвав CreateOleAdviseHolder. Возвращенный интерфейс IOleAdviseHolder имеет три метода отправки уведомлений рекомендаций, а также методы IOleAdviseHolder::Advise, IOleAdviseHolder::Unadvise и IOleAdviseHolder::EnumAdvise , которые идентичны методам для IOleObject. Вызовы IOleObject::Advise, IOleObject::Unadvise или IOleObject::EnumAdvise делегируются соответствующим методам в держателе рекомендаций.

Чтобы уничтожить держатель рекомендаций, просто вызовите IUnknown::Release в интерфейсе IOleAdviseHolder .

Требования

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

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

CreateOleAdviseHolder

IOleAdviseHolder::Совет

IOleObject

IOleObject::EnumAdvise

IOleObject::Unadvise