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
應該建立 search-results 資料夾。
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旗標,則尤其如此。
請注意,不論您為 lpInterface 參數傳入的值為何,某些訊息存放區提供者一律會將 lppFolder 參數指向資料夾的標準介面。 因為傳回的介面指標可能不是您預期的類型,所以請呼叫新資料夾的 IMAPIProp::GetProps 方法來擷取 PR_OBJECT_TYPE (PidTagObjectType) 屬性。 如有必要,請先將指標轉換成更適當的類型,再進行其他呼叫。
大部分的訊息存放區提供者都要求新資料夾的名稱與其同層級資料夾的名稱一起是唯一的。 能夠處理MAPI_E_COLLISION錯誤值,如果未遵循此規則,則會傳回此值。
若要判斷新建立資料夾的專案標識碼,請呼叫新資料夾的 IMAPIProp::GetProps 方法,以擷取其 PR_ENTRYID (PidTagEntryId) 屬性。
MFCMAPI 參考
如需 MFCMAPI 範例程式代碼,請參閱下表。
檔案 | Function | Comment |
---|---|---|
MsgStoreDlg.cpp |
CMsgStoreDlg::OnCreateSubFolder |
MFCMAPI 使用 CMsgStoreDlg::OnCreateSubFolder 方法在 MFCMAPI 中建立新的資料夾。 |