IMAPIFolder::CopyMessagesIMAPIFolder::CopyMessages

適用されます: OutlookApplies to: Outlook

1 つまたは複数のメッセージを移動またはコピーします。Copies or moves one or more messages.

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

ParametersParameters

lpMsgListlpMsgList

[in]メッセージまたはメッセージのコピーまたは移動を識別するENTRYLIST構造体の配列へのポインター。[in] A pointer to an array of ENTRYLIST structures that identify the message or messages to copy or move.

lpInterfacelpInterface

[in]_LpDestFolder_パラメーターで指定された移動先フォルダーへのアクセスに使用するインターフェイスを表すインターフェイス識別子 (IID) へのポインター。[in] A pointer to the interface identifier (IID) that represents the interface to be used to access the destination folder pointed to by the lpDestFolder parameter. フォルダーの標準的なインターフェイスを返すサービス プロバイダーの結果をパラメーターに NULL IMAPIFolder: IMAPIContainerPassing NULL results in the service provider returning the standard folder interface, IMAPIFolder : IMAPIContainer. クライアントでは、NULL を渡す必要があります。Clients must pass NULL. 他の呼び出し元に対する、IID_IMAPIProp、IID_IMAPIContainer、または IID_IMAPIFolder、 _lpInterface_パラメーターを設定できます。Other callers can set the lpInterface parameter to IID_IUnknown, IID_IMAPIProp, IID_IMAPIContainer, or IID_IMAPIFolder.

lpDestFolderlpDestFolder

[in]開いているフォルダーにコピーまたは移動されたメッセージを受信するへのポインター。[in] A pointer to the open folder to receive the copied or moved messages.

ulUIParamulUIParam

[in]ダイアログ ボックスまたはウィンドウの親ウィンドウへのハンドルを表示します。[in] A handle to the parent window of any dialog boxes or windows this method displays. _UlUIParam_パラメーターは、クライアントは、 _ulFlags_パラメーターに MESSAGE_DIALOG フラグを設定し、 _lpProgress_パラメーターに NULL を渡す場合を除き、無視されます。The ulUIParam parameter is ignored unless the client sets the MESSAGE_DIALOG flag in the ulFlags parameter and passes NULL in the lpProgress parameter.

lpProgresslpProgress

[in]進行状況インジケーターを表示する進行中のオブジェクトへのポインター。[in] A pointer to a progress object that displays a progress indicator. _LpProgress_に NULL を渡した場合、メッセージ ストア プロバイダーは、MAPI 処理中のオブジェクトの実装を使用して進行状況のインジケーターを表示します。If NULL is passed in lpProgress, the message store provider displays a progress indicator by using the MAPI progress object implementation. _UlFlags_に MESSAGE_DIALOG フラグが設定されていない限り、 _lpProgress_パラメーターは無視されます。The lpProgress parameter is ignored unless the MESSAGE_DIALOG flag is set in ulFlags.

ulFlagsulFlags

[in]コピーまたは移動操作を実現する方法を制御するフラグのビットマスクです。[in] A bitmask of flags that controls how the copy or move operation is accomplished. 次のフラグを設定することができます。The following flags can be set:

MAPI_DECLINE_OKMAPI_DECLINE_OK

サポート オブジェクトのIMAPISupport::DoCopyToまたはIMAPISupport::DoCopyPropsメソッドを呼び出すことによってIMAPIFolder::CopyMessagesを実装している場合に MAPI_E_DECLINE_COPY をすぐに返すメッセージ ストア プロバイダーに通知します。Informs the message store provider to immediately return MAPI_E_DECLINE_COPY if it implements IMAPIFolder::CopyMessages by calling the support object's IMAPISupport::DoCopyTo or IMAPISupport::DoCopyProps method.

MESSAGE_DIALOGMESSAGE_DIALOG

操作の進行中は、進行状況のインジケーターを表示します。Displays a progress indicator as the operation proceeds.

MESSAGE_MOVEMESSAGE_MOVE

代わりに移動するのには、メッセージまたはメッセージをコピーします。The message or messages are to be moved instead of copied. MESSAGE_MOVE が設定されていない場合、メッセージがコピーされます。If MESSAGE_MOVE is not set, the messages are copied.

�߂�lReturn value

S_OKS_OK

メッセージまたはメッセージがされて正常にコピーまたは移動します。The message or messages have been successfully copied or moved.

MAPI_E_DECLINE_COPYMAPI_E_DECLINE_COPY

プロバイダーのサポートのオブジェクトのメソッドを呼び出すことによってこのメソッドを実装して、呼び出し元に MAPI_DECLINE_OK フラグが渡されます。The provider implements this method by calling a support object method, and the caller has passed the MAPI_DECLINE_OK flag.

MAPI_W_PARTIAL_COMPLETIONMAPI_W_PARTIAL_COMPLETION

呼び出しが成功したが、すべてのエントリが正常にコピーまたは移動されました。The call succeeded, but not all entries were successfully copied or moved. この警告が返されると、呼び出しを成功として処理する必要があります。When this warning is returned, the call should be handled as successful. この警告をテストするには、 HR_FAILEDマクロを使用します。To test for this warning, use the HR_FAILED macro. 詳細については、エラーを処理するためのマクロの使用を参照してください。For more information, see Using Macros for Error Handling.

備考Remarks

IMAPIFolder::CopyMessagesメソッドは、コピーまたは別のフォルダーにメッセージを移動します。The IMAPIFolder::CopyMessages method copies or moves messages to another folder.

開かれているメッセージ読み取り/書き込みアクセス許可を移動またはコピーすることができます。Messages that are opened with read/write permission can be moved or copied.

実装者へのメモNotes to implementers

IMAPISupport::CopyMessagesメソッドを使用せず、別のメッセージ ストアにメッセージをコピーする場合は、GENERATE_RECEIPT_ONLY フラグを設定してIMAPIFolder::SetReadFlagsを最初に呼び出す必要があります。If you are copying messages to another message store without using the IMAPISupport::CopyMessages method, you must first call IMAPIFolder::SetReadFlags with the GENERATE_RECEIPT_ONLY flag set. 受信側メッセージ ・ ストアは、コピーまたは移動されたメッセージの読み取りのレポートを生成するための責任ではありません。The receiving message store is not responsible for generating read reports for the copied or moved messages. 場合はIMAPIFolder::CopyMessagesを実装するためにIMAPISupport::CopyMessagesを呼び出す場合、呼び出さないようにSetReadFlags。MAPI を呼び出すことです。If you are calling IMAPISupport::CopyMessages to implement IMAPIFolder::CopyMessages, do not call SetReadFlags; MAPI will call it.

実装は、移動または任意の順序でメッセージをコピーし、任意の順序で読み取りステータス レポートを生成できます。Your implementation can move or copy the messages in any order and generate read status reports in any order. 読み取りステータス レポートを生成する前にメッセージのコピーを完了したり、実装は、コピー操作を開始する前にレポートを送信できます。That is, you can finish copying messages before generating any of the read status reports or send the reports before your implementation starts the copy operation. ただし、コピーが成功するかどうかに関係なく、コピーするすべてのメッセージを送信するレポートを読みます。However, read reports should be sent for all messages to be copied, regardless of whether the copy is successful.

コピーまたは移動操作には、複数のメッセージが含まれている場合は、できるだけ完全に操作を実行します。When the copy or move operation involves more than one message, perform the operation as completely as possible. メモリが不足している、ディスク領域、またはメッセージ ・ ストア内の破損が不足しているなど、ユーザーが制御できない障害が発生した場合を除きは、処理の途中で操作を停止しません。Do not stop the operation prematurely unless a failure occurs that is beyond your control, such as running out of memory, running out of disk space, or corruption in the message store.

移動またはコピー操作の間でのエントリの識別子を維持しようとしてください。Try to maintain entry identifiers across move or copy operations. 必須ではありませんが、エントリの識別子を維持することもする必要があります。You should also preserve entry identifiers, although it is not required.

移動またはクライアントがメッセージのIMAPIProp::SaveChangesメソッドの呼び出しは失敗する可能性があることあらかじめご了承するようにメッセージをコピーするときに通知を送信します。Send notifications when you move or copy messages so that clients are forewarned that their calls to the messages' IMAPIProp::SaveChanges methods may fail.

メッセージの状態は、コピー、移動の操作をしたりしないでください。Do not include a message's status in the copy or move operation. 移動またはメッセージの状態のコピーを大幅にパフォーマンスに影響します。Moving or copying a message status greatly affects performance.

呼び出し側への注意Notes to callers

IMAPIFolder::CopyMessagesを使用して、検索結果のフォルダー、メッセージ多くの場合、親フォルダー グループを作成します。Use IMAPIFolder::CopyMessages to populate search-results folders, where messages are often grouped by parent folder.

次の条件下で、これらの戻り値を期待してください。Expect these return values under the following conditions.

条件Condition 戻り値Return value
IMAPIFolder::CopyMessagesが正常にコピーまたは、すべてのメッセージを移動します。IMAPIFolder::CopyMessages has successfully copied or moved every message.
S_OKS_OK
IMAPIFolder::CopyMessagesは、正常にコピーまたはすべてのメッセージを移動できませんでした。IMAPIFolder::CopyMessages was unable to successfully copy or move every message.
MAPI_W_PARTIAL_COMPLETIONMAPI_W_PARTIAL_COMPLETION
IMAPIFolder::CopyMessagesは完了できませんでした。IMAPIFolder::CopyMessages was unable to complete.
エラー値Any error value

IMAPIFolder::CopyMessagesが完了することではない場合と仮定しないでその作業は実行されませんでした。When IMAPIFolder::CopyMessages is unable to complete, do not assume that no work was done. IMAPIFolder::CopyMessagesは、コピーまたはエラーが発生する前に 1 つまたは複数のメッセージを移動することがされている可能性があります。IMAPIFolder::CopyMessages might have been able to copy or move one or more messages before encountering the error.

関連項目See also

IMAPIFolder: IMAPIContainerIMAPIFolder : IMAPIContainer