IMAPISupport::ReadReceipt
适用于:Outlook 2013 | Outlook 2016
为邮件生成已读或未读报告。
HRESULT ReadReceipt(
ULONG ulFlags,
LPMESSAGE lpReadMessage,
LPMESSAGE FAR * lppEmptyMessage
);
参数
ulFlags
[in]一个标志的位掩码,用于控制读取或非读取报表的生成方式。 可以设置以下标志:
MAPI_NON_READ
生成非读报表。 如果未设置MAPI_NON_READ,则会生成读取报告。
lpReadMessage
[in]指向应生成报表的消息的指针。
lppEmptyMessage
[in,out]输入时, lppEmptyMessage 指向指向空消息的指针。 输出时, lppEmptyMessage 指向指向报表消息的指针。
返回值
S_OK
已成功生成报告。
备注
IMAPISupport::ReadReceipt 方法仅针对消息存储提供程序支持对象实现。 消息存储提供程序调用 ReadReceipt 以指示 MAPI 为 lpReadMessage 参数指向的消息生成已读或未读报告。
给调用方的说明
当设置了 PR_READ_RECEIPT_REQUESTED (PidTagReadReceiptRequested) 属性并且满足以下条件之一时,调用 ReadReceipt:
- 已阅读邮件。
- 消息已移动。
- 消息已复制。
- 已调用消息的 IMessage::SetReadFlag 方法。
删除消息时,不要调用 ReadReceipt 。
对于一条消息,应仅发送一次已读或未读报表。 跟踪邮件的读取状态,不要为单个邮件发送多个报告。
如果 lppEmptyMessage 参数在 MAPI 从 ReadReceipt 返回时指向有效的报告消息,请调用 IMessage::SubmitMessage 方法发送消息,然后通过调用其 IUnknown:s:Release 方法释放指针。
如果 ReadReceipt 失败,则应在不提交的情况下释放消息。 如果存储邮件的读取状态,则可以尝试在以后生成已读或未读报告。
可以隐藏或显示文件夹中存储生成的已读和未读报表。 通过将已读报表和未读报表存储在隐藏文件夹中,可以实现更严格的安全性。
另请参阅
IMAPIFolder::DeleteMessages
IMessage::SubmitMessage
PidTagReadReceiptRequested 规范属性
IMAPISupport : IUnknown