Метод IOleObject::Advise (oleidl.h)
Устанавливает консультативное соединение между составным объектом документа и приемником рекомендаций вызывающего объекта, через которое вызывающий объект получает уведомление о переименовании, сохранении или закрытии составного объекта документа.
Синтаксис
HRESULT Advise(
[in] IAdviseSink *pAdvSink,
[out] DWORD *pdwConnection
);
Параметры
[in] pAdvSink
Указатель на интерфейс IAdviseSink в приемнике рекомендаций вызывающего объекта.
[out] pdwConnection
Указатель на маркер, который можно передать в IOleObject::Unadvise для удаления консультативного подключения.
Возвращаемое значение
Этот метод возвращает значение S_OK при успешном завершении. Другие возможные возвращаемые значения включают следующее.
Код возврата | Описание |
---|---|
|
Недостаточно доступной памяти для этой операции. |
Комментарии
Метод 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 |