IMAPIFolder::EmptyFolder
适用于:Outlook 2013 | Outlook 2016
从文件夹中删除所有邮件和子文件夹,而不删除文件夹本身。
HRESULT EmptyFolder(
ULONG_PTR ulUIParam,
LPMAPIPROGRESS lpProgress,
ULONG ulFlags
);
参数
ulUIParam
[in]进度指示器的父窗口的句柄。 除非 ulFlags 参数中设置了 FOLDER_DIALOG 标志,否则忽略 ulUIParam 参数。
lpProgress
[in]指向显示进度指示器的进度对象的指针。 如果在 lpProgress 中传递 NULL,则消息存储提供程序使用 MAPI 进度对象实现显示进度指示器。 除非在 ulFlags 参数中设置了 FOLDER_DIALOG 标志,否则将忽略 lpProgress 参数。
ulFlags
[in]控制文件夹清空方式的标志的位掩码。 可以设置以下标志:
DEL_ASSOCIATED
删除所有子文件夹,包括包含具有关联内容的消息的子文件夹。 DEL_ASSOCIATED标志仅对调用所针对的顶级文件夹有意义。
DELETE_HARD_DELETE
永久删除所有邮件,包括软删除的消息。
FOLDER_DIALOG
在操作继续时显示进度指示器。
返回值
S_OK
已成功清空文件夹。
MAPI_W_PARTIAL_COMPLETION
调用成功,但文件夹未完全清空。 返回此警告时,应将调用处理为成功。 若要测试此警告,请使用 HR_FAILED 宏。 有关详细信息,请参阅 使用宏进行错误处理。
备注
IMAPIFolder::EmptyFolder 方法删除文件夹的所有内容,而不删除文件夹本身。
在 EmptyFolder 调用期间,不会删除提交的消息。
文件夹的关联内容包括用于描述视图、规则、自定义窗体和自定义解决方案存储的邮件,还可以包含表单定义。
针对实现者的说明
不要为已提交的文件夹中的邮件调用 IMsgStore::AbortSubmit 方法。 不会删除已提交的邮件。
给调用方的说明
在以下条件下,应使用这些返回值。
Condition | 返回值 |
---|---|
EmptyFolder 已成功清空文件夹。 | S_OK |
EmptyFolder 无法完全清空文件夹。 | MAPI_W_PARTIAL_COMPLETION |
EmptyFolder 无法完成。 | 任何错误值 |
当 EmptyFolder 无法完成时,不要假定未完成任何工作。 在遇到错误之前,EmptyFolder 可能已经能够删除文件夹的某些内容。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
MsgStoreDlg.cpp |
CMsgStoreDlg::OnEmptyFolder |
MFCMAPI 使用 IMAPIFolder::EmptyFolder 方法删除指定文件夹的内容。 |