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 メソッドを使用して、指定したメッセージを削除します。 |