次の方法で共有


IMAPIMessageSite::DeleteMessage

適用対象: Outlook 2013 | Outlook 2016

現在のメッセージを削除します。

HRESULT DeleteMessage(
  LPMAPIVIEWCONTEXT pViewContext,
  LPCRECT prcPosRect
);

パラメーター

pViewContext

[in]ビュー コンテキスト オブジェクトへのポインター。

prcPosRect

[in]現在のフォームのウィンドウ サイズと位置を含む RECT 構造体へのポインター。 次に表示されるフォームでは、このウィンドウの四角形も使用されます。

戻り値

S_OK

�ʘb���������A�\�������l�܂��͒l���Ԃ���܂��B

MAPI_E_NO_SUPPORT

この操作は、このメッセージ サイトではサポートされていません。

注釈

フォーム オブジェクトは IMAPIMessageSite::D eleteMessage メソッドを呼び出して、フォームが現在表示しているメッセージを削除します。

呼び出し側への注意

DeleteMessage が返された後、フォーム オブジェクトは新しいメッセージにチェックし、存在しない場合はそれ自体を無視する必要があります。 アクションが実行されたメッセージ DeleteMessage が削除されたか、 削除済みアイテム フォルダーに移動されたかどうかを判断するために、フォーム オブジェクトは IMAPIMessageSite::GetSiteStatus メソッドを呼び出して、DELETE_IS_MOVE フラグが返されたかどうかを判断できます。

実装に関するメモ

DeleteMessage メソッドのフォーム ビューアーの実装がメッセージを削除した後に次のメッセージに移動する場合、実装では IMAPIViewContext::ActivateNext メソッドを呼び出し、実際の削除を実行する前に VCDIR_DELETE フラグを渡す必要があります。 DeleteMessage のフォーム ビューアーの実装によって削除されたメッセージ (削除済みアイテム フォルダーなど) が移動された場合、メッセージが変更された場合、実装はメッセージへの変更を保存する必要があります。

DeleteMessage の一般的な実装では、次のタスクが実行されます。

  1. 実装がメッセージを移動している場合は、IPersistMessage::Save メソッドを呼び出し、pMessage パラメーターに null を渡し、fSameAsLoad パラメーターで true を渡します。

  2. IMAPIViewContext::ActivateNext メソッドを呼び出し、ulDir パラメーターにVCDIR_DELETE フラグを渡します。

  3. ActivateNext 呼び出しが失敗した場合は、 が返されます。 ActivateNext がS_FALSEを返す場合は、IPersistMessage::HandsOffMessage メソッドを呼び出します。

  4. メッセージを削除または移動します。

フォームのウィンドウで使用される RECT 構造体を取得するには、Windows GetWindowRect 関数を呼び出します。

フォーム サーバーに関連するインターフェイスの一覧については、「 MAPI フォーム インターフェイス」を参照してください。

MFCMAPI リファレンス

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

ファイル 関数 コメント
MyMAPIFormViewer.cpp
CMyMAPIFormViewer::D eleteMessage
実装されていません。

関連項目

IMAPIMessageSite::GetSiteStatus

IMAPIViewContext::ActivateNext

IPersistMessage::HandsOffMessage

IPersistMessage::Save

IMAPIMessageSite : IUnknown

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

MAPI フォーム インターフェイス