共用方式為


IMAPIFolder::CopyMessages

適用於:Outlook 2013 |Outlook 2016

複製或移動一或多個訊息。

HRESULT CopyMessages(
  LPENTRYLIST lpMsgList,
  LPCIID lpInterface,
  LPVOID lpDestFolder,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  ULONG ulFlags
);

參數

lpMsgList

[in] ENTRYLIST 結構陣列的指標,識別要複製或行動的訊息。

lpInterface

[in]介面識別碼的指標 (IID) ,表示要用來存取 lpDestFolder 參數所指向之目的地資料夾的介面。 傳遞 NULL 會導致服務提供者傳回標準資料夾介面 IMAPIFolder: IMAPIContainer。 用戶端必須傳遞 NULL。 其他呼叫端可以將 lpInterface 參數設定為 IID_IUnknown、IID_IMAPIProp、IID_IMAPIContainer 或 IID_IMAPIFolder。

lpDestFolder

[in]開啟資料夾的指標,用來接收複製或移動的訊息。

ulUIParam

[in]這個方法所顯示之任何對話框或視窗之父視窗的句柄。 除非用戶端在 ulFlags 參數中設定MESSAGE_DIALOG旗標,並在 lpProgress 參數中傳遞 NULL,否則會忽略 ulUIParam 參數。

lpProgress

[in]顯示進度指標之進度物件的指標。 如果在 lpProgress 中傳遞 NULL,訊息存放區提供者會使用 MAPI 進度物件實作來顯示進度指示器。 除非在ulFlags中設定MESSAGE_DIALOG旗標,否則會忽略 lpProgress 參數。

ulFlags

[in]控制複製或移動作業完成方式的旗標位掩碼。 您可以設定下列旗標:

MAPI_DECLINE_OK

藉由呼叫支援物件的 IMAPISupport::D oCopyToIMAPISupport::D oCopyProps 方法來實作 IMAPIFolder::CopyMessages,通知訊息存放區提供者立即傳回MAPI_E_DECLINE_COPY。

MESSAGE_DIALOG

在作業繼續進行時顯示進度指示器。

MESSAGE_MOVE

要移動訊息或訊息,而不是複製。 如果未設定MESSAGE_MOVE,則會複製訊息。

傳回值

S_OK

訊息或訊息已成功複製或移動。

MAPI_E_DECLINE_COPY

提供者會藉由呼叫支持物件方法來實作這個方法,而且呼叫端已傳遞MAPI_DECLINE_OK旗標。

MAPI_W_PARTIAL_COMPLETION

呼叫成功,但並非所有專案都已成功複製或移動。 傳回此警告時,應將呼叫視為成功處理。 若要測試此警告,請使用 HR_FAILED 宏。 如需詳細資訊,請 參閱使用宏進行錯誤處理

註解

IMAPIFolder::CopyMessages 方法會將訊息複製或移動到另一個資料夾。

以讀取/寫入許可權開啟的訊息可以移動或複製。

實作者注意事項

如果您要將訊息複製到另一個訊息存放區,而不使用 IMAPISupport::CopyMessages 方法,您必須先呼叫已設定GENERATE_RECEIPT_ONLY旗標的 IMAPIFolder::SetReadFlags 。 接收訊息存放區不負責為複製或移動的訊息產生讀取報表。 如果您呼叫 IMAPISupport::CopyMessages 來實 作 IMAPIFolder::CopyMessages,請勿呼叫 SetReadFlags;MAPI 會呼叫它。

您的實作可以依任何順序移動或複製訊息,並依任何順序產生讀取狀態報告。 也就是說,您可以在產生任何讀取狀態報表之前完成複製訊息,或在實作開始複製作業之前傳送報告。 不過,不論複製是否成功,都應該傳送讀取報表以複製所有訊息。

當複製或移動作業牽涉到多個訊息時,請盡可能完整地執行作業。 除非發生超出您控制的失敗,例如記憶體不足、磁碟空間不足或訊息存放區損毀,否則請勿提前停止作業。

嘗試跨移動或複製作業維護項目標識碼。 您也應該保留項目標識碼,但並非必要。

當您移動或複製訊息時傳送通知,讓用戶端預先確認其對訊息 IMAPIProp::SaveChanges 方法的呼叫可能會失敗。

請勿在複製或移動作業中包含訊息的狀態。 移動或複製訊息狀態會大幅影響效能。

呼叫者注意事項

使用 IMAPIFolder::CopyMessages 填入搜尋結果資料夾,其中訊息通常會依父資料夾分組。

在下列情況下,預期這些傳回值。

Condition 傳回值
IMAPIFolder::CopyMessages 已成功複製或移動每則訊息。 S_OK
IMAPIFolder::CopyMessages 無法成功複製或移動每則訊息。 MAPI_W_PARTIAL_COMPLETION
IMAPIFolder::CopyMessages 無法完成。 任何錯誤值

IMAPIFolder::CopyMessages 無法完成時,請勿假設未完成任何工作。 IMAPIFolder::CopyMessages 在遇到錯誤之前,可能已經能夠複製或移動一或多個訊息。

另請參閱

IMAPIFolder:IMAPIContainer