次の方法で共有


IMAPIFolder::DeleteFolder

適用対象: Outlook 2013 | Outlook 2016

サブフォルダーを削除します。

HRESULT DeleteFolder(
  ULONG_PTR cbEntryID,
  LPENTRYID lpEntryID,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  ULONG ulFlags
);

パラメーター

cbEntryID

[in] lpEntryID パラメーターによって指されるエントリ識別子のバイト数。

lpEntryID

[in]削除するサブフォルダーのエントリ識別子へのポインター。

ulUIParam

[in]進行状況インジケーターの親ウィンドウへのハンドル。 ulUIParam パラメーターは、ulFlags パラメーターに FOLDER_DIALOG フラグが設定されていない限り無視されます。

lpProgress

[in]進行状況インジケーターを表示する進行状況オブジェクトへのポインター。 LPProgress で NULL が渡された場合、メッセージ ストア プロバイダーは MAPI 進行状況オブジェクトの実装を使用して進行状況インジケーターを表示します。 lpProgress パラメーターは、ulFlags でFOLDER_DIALOG フラグが設定されていない限り無視されます。

ulFlags

[in]サブフォルダーの削除を制御するフラグのビットマスク。 次のフラグを設定できます。

DEL_FOLDERS

lpEntryID が指すサブフォルダーのすべてのサブフォルダーを削除する必要があります。

DEL_MESSAGES

lpEntryID が指すサブフォルダー内のすべてのメッセージを削除する必要があります。

DELETE_HARD_DELETE

フォルダーを完全に削除します。

FOLDER_DIALOG

操作の進行中に進行状況インジケーターが表示されます。

戻り値

S_OK

指定したフォルダーが正常に削除されました。

MAPI_E_HAS_FOLDERS

削除されるサブフォルダーにはサブフォルダーが含まれており、DEL_FOLDERS フラグが設定されていません。 サブフォルダーは削除されませんでした。

MAPI_E_HAS_MESSAGES

削除されるサブフォルダーにメッセージが含まれており、DEL_MESSAGES フラグが設定されていません。 サブフォルダーは削除されませんでした。

MAPI_W_PARTIAL_COMPLETION

呼び出しは成功しましたが、すべてのエントリが正常に削除されたわけではありません。 この警告が返されたら、呼び出しは成功として処理する必要があります。 この警告をテストするには、 HR_FAILED マクロを使用します。 詳細については、「 エラー処理にマクロを使用する」を参照してください。

注釈

IMAPIFolder::D eleteFolder メソッドは、サブフォルダーを削除します。 既定では、 DeleteFolder は空のフォルダーでのみ動作しますが、DEL_FOLDERS と DEL_MESSAGES の 2 つのフラグを設定することで、空でないフォルダーで正常に使用できます。 DeleteFolder 呼び出しのDEL_FOLDERSフラグとDEL_MESSAGES フラグの両方を設定する空のフォルダーまたはフォルダーのみを削除できます。 DEL_FOLDERSを使用すると、フォルダーのすべてのサブフォルダーを削除できます。DEL_MESSAGESを使用すると、フォルダーのすべてのメッセージを削除できます。

MFCMAPI プログラムを使用すると、フォルダーの論理的な削除とフォルダーのハード削除を選択できます。 Exchange Server 2019 では、プライベート ストアにフォルダーの論理的な削除も実装されず、プライベート ストア内のフォルダーの削除要求 (cf. [ropOpenFolder] 要求) は、DELETE_HARD_DELETEが設定されたかのように扱われます。

実装に関するメモ

削除操作に複数のフォルダーが含まれる場合は、各フォルダーに対して可能な限り完全に操作を実行します。 削除するフォルダーの 1 つが存在しないか、他の場所に移動またはコピーされている場合があります。 メモリ不足、ディスク領域の不足、メッセージ ストアの破損など、制御できないエラーが発生しない限り、操作を途中で停止しないでください。

呼び出し側への注意

これらの戻り値は、次の条件で想定します。

Condition 戻り値
DeleteFolder は、すべてのメッセージとサブフォルダーを正常に削除しました。 S_OK
DeleteFolder は、すべてのメッセージとサブフォルダーを正常に削除できませんでした。 MAPI_W_PARTIAL_COMPLETIONまたはMAPI_E_NOT_FOUND
DeleteFolder を完了できませんでした。 MAPI_E_NOT_FOUNDを除くすべてのエラー値

DeleteFolder が完了できない場合は、作業が完了していないと想定しないでください。 DeleteFolder は、エラーが発生する前に、1 つ以上のメッセージとサブフォルダーを削除できた可能性があります。

1 つ以上のサブフォルダーを削除できない場合、 DeleteFolder はメッセージ ストア プロバイダーの実装に応じて、MAPI_W_PARTIAL_COMPLETIONまたはMAPI_E_NOT_FOUNDを返します。

MFCMAPI リファレンス

MFCMAPI のサンプル コードについては、次の表を参照してください。

ファイル 関数 コメント
MsgStoreDlg.cpp
CMsgStoreDlg::OnDeleteSelectedItem
MFCMAPI では、 IMAPIFolder::D eleteFolder メソッドを使用してフォルダーを削除します。

関連項目

IMAPIFolder : IMAPIContainer

[�R��h �T���v���Ƃ��� MFCMAPI