发送和接收表单通知
适用于:Outlook 2013 | Outlook 2016
MAPI 中使用表单通知来促进从表单到查看者以及从查看者到表单的通信。
当发生以下事件之一时,窗体会向查看者发送通知:
窗体已关闭。
窗体中加载了一条新邮件。
保存操作已完成。
发送消息。
每个事件类型都对应于 IMAPIViewAdviseSink 中的特定方法:IUnknown,这是表单查看器必须实现的接口之一。 发生事件时,表单会在查看者的建议接收器中调用相应的 IMAPIViewAdviseSink 方法。 例如,当新消息到达时,您的查看器应包含在其显示中,窗体将调用 IMAPIViewAdviseSink::OnNewMessage 方法。
以对查看者有意义的方式实现视图建议接收器;没有标准实现。 例如,在 OnNewMessage 中,可以更新当前文件夹的内容表的视图,以包含新到达的邮件。 在 IMAPIViewAdviseSink::OnSubmitted(收到已提交的邮件事件时调用的方法)中,可以将提交的邮件复制到“已发送邮件”文件夹。
当发生影响窗体的更改以及加载新邮件时,窗体会收到查看者的通知。 若要通知表单,请调用 IMAPIFormAdviseSink: IMAPIFormAdviseSink::OnChange 或 IMAPIFormAdviseSink::OnActivateNext 的方法之一。 调用 OnChange 以传达状态。 例如,如果窗体在新邮件到达时显示文件夹中的最后一个项目,请调用 OnChange 并设置VCSTATUS_NEXT标志,告诉窗体现在有下一个项目。
调用 OnActivateNext 以提醒表单收到新邮件,该邮件可能显示或可能无法显示。 将消息的 message 类传递给 OnActivateNext。
由窗体对象向客户端应用程序发送的通知由客户端应用程序的 IMAPIViewAdviseSink 接口处理。 有关详细信息,请参阅 IMAPIViewAdviseSink:IUnknown。