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 つ以上のフォルダーがコピーまたは移動されている可能性があります。

関連項目

IMAPISupport: IUnknown