次の方法で共有


IMAPIFolder::DeleteMessages

適用対象: Outlook 2013 | Outlook 2016

1 つ以上のメッセージを削除します。

HRESULT DeleteMessages(
  LPENTRYLIST lpMsgList,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  ULONG ulFlags
);

パラメーター

lpMsgList

[in]削除するメッセージの数と、メッセージを識別する ENTRYID 構造体の配列を含む ENTRYLIST 構造体へのポインター。

ulUIParam

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

lpProgress

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

ulFlags

[in]メッセージの削除方法を制御するフラグのビットマスク。 次のフラグを設定できます。

DELETE_HARD_DELETE

論理的に削除されたメッセージを含むすべてのメッセージを完全に削除します。

MESSAGE_DIALOG

操作が進行すると、進行状況インジケーターが表示されます。

戻り値

S_OK

指定したメッセージまたはメッセージが正常に削除されました。

MAPI_W_PARTIAL_COMPLETION

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

注釈

IMAPIFolder::D eleteMessages メソッドは、フォルダーからメッセージを削除します。 存在しないメッセージ、他の場所に移動されたメッセージ、読み取り/書き込みアクセス許可で開いているメッセージ、または現在送信されているメッセージは削除できません。

実装に関するメモ

削除操作に複数のメッセージが含まれる場合は、1 つ以上のメッセージを削除できない場合でも、フォルダーごとに可能な限り完全に操作を実行します。 メモリ不足、ディスク領域の不足、メッセージ ストアの破損など、制御できないエラーが発生しない限り、操作を途中で停止しないでください。

呼び出し側への注意

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

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

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

DeleteMessages は、 メッセージ ストアの実装に応じて、MAPI_W_PARTIAL_COMPLETIONまたはMAPI_E_NOT_FOUNDを返します。

MFCMAPI リファレンス

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

ファイル 関数 コメント
FolderDlg.cpp
CFolderDlg::OnDeleteSelectedItem
MFCMAPI では、 IMAPIFolder::D eleteMessages メソッドを使用して、指定したメッセージを削除します。

関連項目

Entryid

ENTRYLIST

IMAPIFolder : IMAPIContainer

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

エラー処理にマクロを使用する