IMessage::SetReadFlag
适用于:Outlook 2013 | Outlook 2016
设置或清除PR_MESSAGE_FLAGS (PidTagMessageFlags) 消息属性中的MSGFLAG_READ标志,并管理读取报表的发送。
HRESULT SetReadFlag(
ULONG ulFlags
);
参数
ulFlags
[in]控制消息读取标志设置的标志的位掩码,即消息PR_MESSAGE_FLAGS属性中的 MSGFLAG_READ 标志和读取报表的处理。 可以设置以下标志:
CLEAR_READ_FLAG:应在PR_MESSAGE_FLAGS中清除 MSGFLAG_READ 标志,并且不应发送已读报告。
CLEAR_NRN_PENDING:应在PR_MESSAGE_FLAGS中清除 MSGFLAG_NRN_PENDING 标志,并且不应发送非读取报表。
CLEAR_RN_PENDING:应在PR_MESSAGE_FLAGS中清除 MSGFLAG_RN_PENDING 标志,并且不应发送读取报告。
GENERATE_RECEIPT_ONLY:如果已读报告处于挂起状态,则应发送读取报告,但MSGFLAG_READ标志的状态不应发生更改。
MAPI_DEFERRED_ERRORS:允许 SetReadFlag 在操作完成之前成功返回。
SUPPRESS_RECEIPT:如果请求了读取报告,则应取消挂起的读取报告,并且此调用会将消息的状态从“未读”更改为“已读”。 如果此调用不更改消息的状态,消息存储提供程序可以忽略此标志。
返回值
S_OK
已成功设置或清除邮件的读取标志。
MAPI_E_NO_SUPPRESS
消息存储提供程序不支持禁止读取报表。
MAPI_E_INVALID_PARAMETER
以下标志组合之一在 ulFlags 参数中设置:
SUPPRESS_RECEIPT |CLEAR_READ_FLAG
SUPPRESS_RECEIPT |CLEAR_READ_FLAG |GENERATE_RECEIPT_ONLY
CLEAR_READ_FLAG |GENERATE_RECEIPT_ONLY
备注
IMessage::SetReadFlag 方法在 PR_MESSAGE_FLAGS 属性中设置或清除消息的MSGFLAG_READ标志,并调用 IMAPIProp::SaveChanges 来保存消息。 设置MSGFLAG_READ标志将邮件标记为已阅读,这不一定表示目标收件人实际上已阅读邮件。
SetReadFlags 还管理读取报表的发送。 仅当发件人已请求读取报告时,才会发送读取报告。
无法更改以下项的读取标志:
不存在的消息。
已移动到其他位置的消息。
以读/写权限打开的消息。
当前提交的消息。
给调用方的说明
如果未在 ulFlags 参数中设置任何标志,则适用以下规则:
如果已设置MSGFLAG_READ,则不执行任何操作。
如果未设置MSGFLAG_READ,请设置它,并在设置了 PR_READ_RECEIPT_REQUESTED (PidTagReadReceiptRequested) 属性时发送任何挂起的读取报告。
如果同时设置了SUPPRESS_RECEIPT和GENERATE_RECEIPT_ONLY标志,则应清除PR_READ_RECEIPT_REQUESTED位(如果已设置),并且不应发送读取报告。
设置SUPPRESS_RECEIPT标志时:
如果已设置MSGFLAG_READ,则不执行任何操作。
如果未设置MSGFLAG_READ,请设置它并取消任何挂起的读取报告。
设置CLEAR_READ_FLAG标志后,清除每封邮件PR_MESSAGE_FLAGS属性中的 MSGFLAG_READ 标志,不发送任何读取报告。
设置GENERATE_RECEIPT_ONLY标志后,发送任何挂起的读取报告。 请勿设置或清除MSGFLAG_READ。
当同时设置SUPPRESS_RECEIPT和GENERATE_RECEIPT_ONLY标志时,如果设置了 PR_READ_RECEIPT_REQUESTED 属性且不发送读取报告,则将此属性设置为 FALSE。
可以通过在特定条件下禁止生成已读报表来优化报表行为。 但是,如果不支持抑制报表,并且客户端调用设置了SUPPRESS_RECEIPT标志的 SetReadFlag ,则返回MAPI_E_NO_SUPPRESS。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
FolderDlg.cpp |
CFolderDlg::OnSetReadFlag |
MFCMAPI 使用 IMessage::SetReadFlag 方法在所选消息上设置读取标志。 |