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]コピーまたは移動されたフォルダーの名前へのポインター。それ以外の場合は、コピーまたは移動されたフォルダーの名前がソース フォルダー ( lpEntryID が指すフォルダー) と同じである必要があることを示す NULL。
ulUIParam
[in]進行状況インジケーター ダイアログ ボックスと関連ウィンドウのウィンドウのハンドル。 ulUIParam パラメーターは、ulFlags パラメーターに FOLDER_DIALOG フラグが設定されていない限り無視されます。
lpProgress
[in]進行状況インジケーターを表示する進行状況オブジェクトへのポインター。 LPProgress で NULL が渡された場合、メッセージ ストア プロバイダーは MAPI 進行状況オブジェクトの実装を使用して進行状況インジケーターを表示します。 lpProgress パラメーターは、ulFlags でFOLDER_DIALOG フラグが設定されていない限り無視されます。
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 を呼び出して、親フォルダー間で 1 つのフォルダーをコピーまたは移動できます。
IMAPISupport::CopyFolder は 、コピーまたは移動されたフォルダーをコピー先フォルダーのサブフォルダーとして追加します。
呼び出し側への注意
IMAPISupport::CopyFolder を使用すると、フォルダーの名前変更と移動、および影響を受けるフォルダーのサブフォルダーのコピーまたは移動を同時に行うことができます。 コピーまたは移動されたフォルダーに入れ子になったすべてのサブフォルダーをコピーまたは移動するには、 ulFlags で COPY_SUBFOLDERS フラグを渡します。
次の条件では、次の戻り値が必要です。
Condition | 戻り値 |
---|---|
CopyFolder は 、フォルダーとそのすべてのサブフォルダー (該当する場合) を正常にコピーまたは移動しました。 | S_OK |
CopyFolder は、すべてのフォルダーを正常にコピーまたは移動できませんでした。 | MAPI_W_PARTIAL_COMPLETION |
CopyFolder を完了できませんでした。 | エラー値 |
CopyFolder がエラー値を返す場合は、作業が行われなかったことを前提として続行しないでください。 CopyFolder でエラーが発生する前に、1 つ以上のフォルダーがコピーまたは移動されている可能性があります。