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


Как работают уведомления

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

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

Приложения объектов определяют условия, которые запрашивают отправку каждого конкретного уведомления и частоту отправки каждого уведомления. Если оно подходит для отправки нескольких уведомлений, оно не имеет значения, какое уведомление отправляется первым; их можно отправлять в любом порядке.

Время уведомлений влияет на производительность и координацию между приложением объекта и его контейнерами. В то время как уведомления, отправляемые слишком часто, замедляют обработку, уведомления, отправляемые слишком редко, приводят к рассинхронизации контейнера. Частоту уведомлений можно сравнить с частотой перерисовок приложения. Таким образом, использование аналогичной логики для времени уведомлений (как используется для перерисовки) является разумным.

CreateDataAdviseHolder

CreateOleAdviseHolder

Уведомления