IMAPISupport::CopyFolder
適用於:Outlook 2013 |Outlook 2016
複製資料夾,或將資料夾從目前父資料夾移至另一個父資料夾。
HRESULT CopyFolder(
LPCIID lpSrcInterface,
LPVOID lpSrcFolder,
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
LPVOID lpDestFolder,
LPSTR lpszNewFolderName,
ULONG_PTR ulUIParam,
LPMAPIPROGRESS lpProgress,
ULONG ulFlags
);
參數
lpSrcInterface
[in]介面識別碼的指標 (IID) ,表示要用來存取要複製或移動之資料夾之父資料夾的介面。
lpSrcFolder
[in]要複製或移動之資料夾之父資料夾的指標。
cbEntryID
[in] lpEntryID 所指向之專案標識碼中的位元組計數。
lpEntryID
[in]要複製或移動之資料夾之項目識別碼的指標。
lpInterface
[in]保留;必須是 NULL。
lpDestFolder
[in]要接收要複製或移動之資料夾的資料夾指標。
lpszNewFolderName
[in]複製或移動資料夾名稱的指標;否則為 NULL,這表示複製或行動的資料夾應該與 lpEntryID) 所指向的資料夾 (源資料夾名稱相同。
ulUIParam
[in]進度指示器對話框和相關視窗的視窗句柄。 除非在ulFlags參數中設定FOLDER_DIALOG旗標,否則會忽略ulUIParam參數。
lpProgress
[in]顯示進度指標之進度物件的指標。 如果在 lpProgress 中傳遞 NULL,訊息存放區提供者會使用 MAPI 進度物件實作來顯示進度指示器。 除非在ulFlags中設定FOLDER_DIALOG旗標,否則會忽略 lpProgress 參數。
ulFlags
[in]控制複製或移動作業完成方式的旗標位掩碼。 您可以設定下列旗標:
COPY_SUBFOLDERS
應該複製或移動資料夾的所有子資料夾。 如果未針對複製作業設定COPY_SUBFOLDERS,則只會複製 lpEntryID 所識別的資料夾。 使用移動作業時,不論是否設定旗標,COPY_SUBFOLDERS行為都是預設行為。
FOLDER_DIALOG
要求顯示進度指示器。
FOLDER_MOVE
應該移動資料夾,而不是複製。 如果未設定FOLDER_MOVE,則會複製資料夾。
MAPI_UNICODE
資料夾的名稱是 Unicode 格式。 如果未設定MAPI_UNICODE旗標,則資料夾的名稱會是 ANSI 格式。
傳回值
S_OK
已成功複製或移動資料夾。
MAPI_E_COLLISION
移動或複製的資料夾名稱與目的地資料夾中子資料夾的名稱相同。 訊息存放區提供者要求資料夾名稱是唯一的。 作業會在未完成的情況下停止。
MAPI_W_PARTIAL_COMPLETION
呼叫成功,但並非所有專案都已成功複製。 傳回此警告時,應將呼叫視為成功處理。 若要測試此警告,請使用 HR_FAILED 宏。 如需詳細資訊,請 參閱使用宏進行錯誤處理。
註解
針對訊息存放區提供者支援對象實 作 IMAPISupport::CopyFolder 方法。 訊息存放區提供者可以在其 IMAPIFolder::CopyFolder 實作中呼叫 IMAPISupport::CopyFolder,將單一資料夾從一個父資料夾複製或移動到另一個資料夾。
IMAPISupport::CopyFolder 會將複製或移動的資料夾新增為目的地資料夾的子資料夾。
呼叫者注意事項
IMAPISupport::CopyFolder 允許同時重新命名和移動資料夾,以及複製或移動受影響資料夾的子資料夾。 若要複製或移動複製或移動資料夾中巢狀的所有子資料夾,請在 ulFlags中傳遞COPY_SUBFOLDERS旗標。
在下列情況下,預期會傳回下列值:
Condition | 傳回值 |
---|---|
如果適用,CopyFolder 已成功複製或行動資料夾及其所有子資料夾。 | S_OK |
CopyFolder 無法成功複製或移動所有資料夾。 | MAPI_W_PARTIAL_COMPLETION |
CopyFolder 無法完成。 | 任何錯誤值 |
如果 CopyFolder 傳 回錯誤值,請勿在假設未完成任何工作時繼續。 在 CopyFolder 發生失敗之前,可能已複製或移動一或多個資料夾。