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


Метод IDataAdviseHolder::Advise (objidl.h)

Создает соединение между приемником рекомендаций и объектом данных для получения уведомлений.

Синтаксис

HRESULT Advise(
  [in]  IDataObject *pDataObject,
  [in]  FORMATETC   *pFetc,
  [in]  DWORD       advf,
  [in]  IAdviseSink *pAdvise,
  [out] DWORD       *pdwConnection
);

Параметры

[in] pDataObject

Указатель на интерфейс IDataObject объекта данных, для которого запрашиваются уведомления. Если данные в этом объекте изменяются, уведомление отправляется приемникам рекомендаций, которые запросили уведомление.

[in] pFetc

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

[in] advf

Группа флагов, управляющих соединением рекомендаций. Возможные значения из перечисления ADVF . Однако только некоторые из возможных значений ADVF относятся к этому методу. В следующей таблице кратко описаны соответствующие значения. Более подробное описание можно найти в описании перечисления ADVF .

Значение Значение
ADVF_NODATA
Запрашивает, чтобы данные не отправлялись вместе с уведомлением.
ADVF_ONLYONCE
Вызывает уничтожение консультативного подключения после отправки первого уведомления. Неявный вызов метода IDataAdviseHolder::Unadvise выполняется от имени вызывающей стороны для удаления подключения.
ADVF_PRIMEFIRST
Вызывает отправку начального уведомления независимо от того, изменилось ли текущее состояние данных.
ADVF_DATAONSTOP
При указании с помощью ADVF_NODATA этот флаг вызывает отправку последнего уведомления с включенными данными перед уничтожением объекта данных. Если ADVF_NODATA не указан, этот флаг не действует.

[in] pAdvise

Указатель на интерфейс IAdviseSink в приемнике рекомендаций, который получает уведомление об изменении.

[out] pdwConnection

Указатель на переменную, получающую маркер, идентифицирующий это соединение. Вызывающий объект может позже удалить консультативное подключение, передав этот маркер в IDataAdviseHolder::Unadvise. Если это значение равно нулю, соединение не было установлено.

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

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

Комментарии

Через подключение, установленное с помощью этого метода, приемник рекомендаций может получать будущие уведомления в вызове IAdviseSink::OnDataChange.

Объект вызывает IDataObject::D Advise для запроса уведомления об изменениях формата, среды или целевого устройства. Эти данные указываются в параметре pFormatetc . Метод DAdvise обычно реализуется для вызова метода IDataAdviseHolder::Advise , чтобы делегировать задачу настройки и отслеживания подключения владельцу рекомендаций. При изменении формата, среднего или целевого устройства объект данных вызывает IDataAdviseHolder::SendOnDataChange для отправки необходимых уведомлений.

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

Требования

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

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

CreateDataAdviseHolder

IDataAdviseHolder

IDataObject::D Advise