Интерфейс IAdviseSink (objidl.h)
Позволяет контейнерам и другим объектам получать уведомления об изменениях данных, просматривать изменения и составные изменения документов, происходящие в интересующих объектах. Например, приложениям-контейнерам требуются такие уведомления, чтобы поддерживать кэшированные презентации связанных и внедренных объектов в актуальном состоянии. Вызовы методов IAdviseSink являются асинхронными, поэтому вызов отправляется, а затем выполняется следующая инструкция, не дожидаясь возврата вызова.
Для создания консультативного подключения объект, который получает уведомления, должен реализовывать IAdviseSink, а объекты, в которых он заинтересован, должны реализовывать IOleObject::Advise и IDataObject::D Advise. Внутрипроцессные объекты и обработчики также могут реализовывать IViewObject::SetAdvise. Объекты, реализующие IOleObject , должны поддерживать все разумные методы рекомендаций. Чтобы упростить уведомления о рекомендациях, OLE предоставляет реализации IDataAdviseHolder и IOleAdviseHolder, которые отслеживают подключения рекомендаций и отправляют уведомления в соответствующие приемники через указатели на интерфейсы IAdviseSink . IViewObject (и его методы рекомендаций) реализован в обработчике по умолчанию.
Как показано в следующей таблице, объект, реализующий приемник рекомендаций, регистрирует свою заинтересованность в получении определенных типов уведомлений путем вызова соответствующего метода.
Вызов этого метода | Регистрация для получения этих уведомлений |
---|---|
IOleObject::Advise | При сохранении, закрытии или переименовании документа. |
IDataObject::D Advise | При изменении данных документа. |
IViewObject::SetAdvise | При изменении представления документа. |
При возникновении события, применимого к зарегистрированным типу уведомлений, приложение объекта вызывает соответствующий метод IAdviseSink . Например, когда внедренный объект закрывается, он вызывает метод IAdviseSink::OnClose для уведомления своего контейнера. Эти уведомления являются асинхронными и происходят после событий, которые их активируют.
Наследование
Интерфейс IAdviseSink наследуется от интерфейса IUnknown . IAdviseSink также имеет следующие типы элементов:
Методы
Интерфейс IAdviseSink содержит следующие методы.
IAdviseSink::OnClose Вызывается сервером для уведомления всех зарегистрированных приемников рекомендаций о том, что объект изменился из запущенного в загруженное состояние. |
IAdviseSink::OnDataChange Вызывается сервером для уведомления объекта данных, зарегистрированного в настоящее время, сообщает приемникам, что данные в объекте изменились. |
IAdviseSink::OnRename Вызывается сервером для уведомления всех зарегистрированных приемников рекомендаций о переименовании объекта. |
IAdviseSink::OnSave Вызывается сервером для уведомления всех зарегистрированных приемников рекомендаций о сохранении объекта. |
IAdviseSink::OnViewChange Уведомляет зарегистрированные приемники рекомендаций объекта о том, что его представление изменилось. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | objidl.h |