IMAPIFolder::SetMessageStatus
适用于:Outlook 2013 | Outlook 2016
设置与消息关联的状态 (例如,该消息是否标记为要删除) 。
HRESULT SetMessageStatus(
ULONG cbEntryID,
LPENTRYID lpEntryID,
ULONG ulNewStatus,
ULONG ulNewStatusMask,
ULONG FAR * lpulOldStatus
);
参数
cbEntryID
[in] lpEntryID 参数指向的条目标识符中的字节计数。
lpEntryID
[in]指向已设置其状态的消息的条目标识符的指针。
ulNewStatus
[in]要分配的新状态。
ulNewStatusMask
[in]应用于新状态的标志的位掩码,并指示要设置的标志。 可以设置以下标志:
MSGSTATUS_DELMARKED
邮件已标记为要删除。
MSGSTATUS_HIDDEN
不会显示该消息。
MSGSTATUS_HIGHLIGHTED
消息将突出显示显示。
MSGSTATUS_REMOTE_DELETE
消息已标记为删除远程消息存储,而无需下载到本地客户端。
MSGSTATUS_REMOTE_DOWNLOAD
消息已标记为从远程消息存储下载到本地客户端。
MSGSTATUS_TAGGED
消息已标记为客户端定义的用途。
lpulOldStatus
[out]指向消息的上一状态的指针。
返回值
S_OK
已成功设置消息状态。
备注
IMAPIFolder::SetMessageStatus 方法将消息状态设置为存储在其 PR_MSG_STATUS (PidTagMessageStatus) 属性中的值。
针对实现者的说明
消息状态位的设置、清除和使用方式完全取决于你的实现,只是保留位 0 到 15,并且必须为零。
远程传输提供程序的此方法实现必须遵循此处所述的语义。 没有特殊注意事项。 客户端使用此方法设置MSGSTATUS_REMOTE_DOWNLOAD位和MSGSTATUS_REMOTE_DELETE位,以指示要从远程消息存储区下载或删除特定消息。 远程传输提供程序不必实现相关的 IMAPIFolder::GetMessageStatus 方法。 客户端必须查看文件夹的内容表,以确定邮件的状态。
给调用方的说明
可以使用消息的 PR_MSG_STATUS 属性与其他客户端协商消息锁定操作。 将位指定为锁定位。 若要确定是否设置了锁定位,请在 lpulOldStatus 参数中检查消息状态的上一个值。 使用 ulNewStatus 参数中的其他位跟踪消息状态,而不会干扰锁定位。