通知的工作原理

通知源自对象应用程序,并通过对象处理程序流向容器。 如果对象是链接对象,则链接对象会截获对象处理程序中的通知,并直接通知容器。

对象应用程序必须管理注册请求,并跟踪在适当情况下发送哪些通知和发送这些通知的位置。 OLE 提供了两个组件对象来简化此任务:复合文档通知的 OleAdviseHolder 和用于数据通知的 DataAdviseHolder。

对象应用程序确定提示发送每个特定通知的条件,以及应发送每个通知的频率。 如果适合发送多个通知,则首先发送哪些通知并不重要:可以按任意顺序发送它们。

通知的计时会影响对象应用程序与其容器之间的性能和协调。 虽然发送的通知太频繁,处理速度太慢,但发送的通知太不频繁会导致同步容器过期。 通知频率可以与应用程序重新绘制的速率进行比较。 因此,将类似的逻辑用于 (通知的计时,因为用于重新绘制) 是明智的。

CreateDataAdviseHolder

CreateOleAdviseHolder

通知