IMAPIFolder::CreateFolder

适用于:Outlook 2013 | Outlook 2016

创建新的子文件夹。

HRESULT CreateFolder(
  ULONG ulFolderType,
  LPSTR lpszFolderName,
  LPSTR lpszFolderComment,
  LPCIID lpInterface,
  ULONG ulFlags,
  LPMAPIFOLDER FAR * lppFolder
);

参数

ulFolderType

[in]要创建的文件夹的类型。 可以设置以下标志:

FOLDER_GENERIC

应创建泛型文件夹。

FOLDER_SEARCH

应创建搜索结果文件夹。

lpszFolderName

[in]指向包含新文件夹名称的字符串的指针。 此名称是新文件夹 PR_DISPLAY_NAME (PidTagDisplayName) 属性的基础。

lpszFolderComment

[in]指向包含与新文件夹关联的注释的字符串的指针。 此字符串将成为新文件夹 PR_COMMENT (PidTagComment) 属性的值。 如果传递 NULL,则文件夹没有初始注释。

lpInterface

[in]指向接口标识符的指针 (IID) ,该接口标识符表示要用于访问新文件夹的接口。 传递 NULL 会导致消息存储提供程序返回标准文件夹接口 IMAPIFolder :IMAPIContainer。 客户端必须传递 NULL。 其他调用方可以将 lpInterface 参数设置为IID_IUnknown、IID_IMAPIProp、IID_IMAPIContainer或IID_IMAPIFolder。

ulFlags

[in]控制如何创建文件夹的标志的位掩码。 可以设置以下标志:

MAPI_DEFERRED_ERRORS

允许 CreateFolder 成功返回,可能是在新文件夹对调用客户端完全可用之前。 如果新文件夹不可用,则对其进行后续调用可能会导致错误。

MAPI_UNICODE

文件夹的名称采用 Unicode 格式。 如果未设置MAPI_UNICODE标志,则文件夹名称采用 ANSI 格式。

OPEN_IF_EXISTS

通过打开具有该名称的现有文件夹,即使 lpszFolderName 参数中名为 的文件夹已存在,也允许该方法成功。 请注意,如果有多个具有所提供的名称的邮件存储提供程序,则允许同级文件夹具有相同名称的邮件存储提供程序可能不会打开现有文件夹。

lppFolder

[out]指向指向新创建文件夹的指针的指针。

返回值

S_OK

如果设置了OPEN_IF_EXISTS标志,则新文件夹已成功创建或打开。

MAPI_E_BAD_CHARWIDTH

已设置MAPI_UNICODE标志且实现不支持 Unicode,或者未设置MAPI_UNICODE且实现仅支持 Unicode。

MAPI_E_COLLISION

具有 lpszFolderName 参数中给定名称的文件夹已存在。 文件夹名称必须唯一。

备注

IMAPIFolder::CreateFolder 方法在当前文件夹中创建一个子文件夹,并将条目标识符分配给新文件夹。

给调用方的说明

当 CreateFolder 返回时,请注意,新文件夹的条目标识符可能不可用。 在调用新文件夹的 IMAPIProp::SaveChanges 方法永久保存它之前,某些邮件存储提供程序不会提供条目标识符。 如果已设置 MAPI_DEFERRED_ERRORS 标志,则尤其如此。

请注意,某些消息存储提供程序始终将 lppFolder 参数指向文件夹的标准接口,而不管你为 lpInterface 参数传入的值。 由于返回的接口指针可能不是预期的类型,因此调用新文件夹的 IMAPIProp::GetProps 方法以检索 PR_OBJECT_TYPE (PidTagObjectType) 属性。 如有必要,请在进行其他调用之前将指针强制转换为更合适的类型。

大多数邮件存储提供程序要求新文件夹的名称相对于其同级文件夹的名称是唯一的。 能够处理MAPI_E_COLLISION错误值,如果未遵循此规则,则返回该错误值。

若要确定新创建的文件夹的条目标识符,请调用新文件夹的 IMAPIProp::GetProps 方法以检索其 PR_ENTRYID (PidTagEntryId) 属性。

MFCMAPI 引用

有关 MFCMAPI 示例代码,请参阅下表。

文件 函数 Comment
MsgStoreDlg.cpp
CMsgStoreDlg::OnCreateSubFolder
MFCMAPI 使用 CMsgStoreDlg::OnCreateSubFolder 方法在 MFCMAPI 中创建新文件夹。

另请参阅

IMAPIProp::GetProps

IMAPIFolder : IMAPIContainer

MFCMAPI 代码示例