IMAPIFolder::DeleteMessages
适用于:Outlook 2013 | Outlook 2016
删除一条或多条消息。
HRESULT DeleteMessages(
LPENTRYLIST lpMsgList,
ULONG_PTR ulUIParam,
LPMAPIPROGRESS lpProgress,
ULONG ulFlags
);
参数
lpMsgList
[in]指向 一个 ENTRYLIST 结构的指针,该结构包含要删除的消息数以及标识消息的 ENTRYID 结构数组。
ulUIParam
[in]进度指示器的父窗口的句柄。 除非在 ulFlags 参数中设置MESSAGE_DIALOG标志,否则将忽略 ulUIParam 参数。
lpProgress
[in]指向显示进度指示器的进度对象的指针。 如果在 lpProgress 中传递 NULL,则消息存储提供程序将使用 MAPI 进度对象实现显示进度指示器。 除非在 ulFlags 参数中设置MESSAGE_DIALOG标志,否则将忽略 lpProgress 参数。
ulFlags
[in]控制如何删除消息的标志的位掩码。 可以设置以下标志:
DELETE_HARD_DELETE
永久删除所有消息,包括软删除的消息。
MESSAGE_DIALOG
在操作进行时显示进度指示器。
返回值
S_OK
已成功删除指定的消息或消息。
MAPI_W_PARTIAL_COMPLETION
调用成功,但并非所有消息都已成功删除。 返回此警告时,应成功处理调用。 若要测试此警告,请使用 HR_FAILED 宏。 有关详细信息,请参阅 使用宏进行错误处理。
注解
IMAPIFolder::D eleteMessages 方法从文件夹中删除消息。 不存在、已移到其他位置、具有读/写权限打开或当前提交的邮件无法删除。
针对实现者的说明
当删除操作涉及多个消息时,请尽可能完整地为每个文件夹执行操作,即使无法删除一个或多个消息。 除非发生超出你控制范围的失败(例如内存不足、磁盘空间不足或消息存储中损坏),否则不要过早停止该操作。
给调用方的说明
在以下条件下,预期这些返回值。
Condition | 返回值 |
---|---|
DeleteMessages 已成功删除每条消息。 | S_OK |
DeleteMessages 无法成功删除每个消息和子文件夹。 | MAPI_W_PARTIAL_COMPLETION或MAPI_E_NOT_FOUND |
DeleteMessages 无法完成。 | 除MAPI_E_NOT_FOUND以外的任何错误值 |
当 DeleteMessages 无法完成时,请不要假定未完成任何工作。 在遇到错误之前,DeleteMessages 可能已能够删除一个或多个消息。
DeleteMessages 返回MAPI_W_PARTIAL_COMPLETION或MAPI_E_NOT_FOUND,具体取决于消息存储的实现。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | 备注 |
---|---|---|
FolderDlg.cpp |
CFolderDlg::OnDeleteSelectedItem |
MFCMAPI 使用 IMAPIFolder::D eleteMessages 方法删除指定的消息。 |