次の方法で共有


IPersistMessage::SaveCompleted

適用対象: Outlook 2013 | Outlook 2016

保存操作が完了したことをフォームに通知します。

HRESULT SaveCompleted(
  LPMESSAGE pMessage
);

パラメーター

pMessage

[in]新しく保存されたメッセージへのポインター。

戻り値

S_OK

通知が成功しました。

E_INVALIDARG

pMessage パラメーターは NULL で、フォームは HandsOffFromNormal または HandsOffAfterSave 状態です。

E_UNEXPECTED

フォームが次のいずれかの状態ではありません。

注釈

IPersistMessage::SaveCompleted メソッドは、保留中のすべての変更が保存されたことをフォームに通知するために、フォーム ビューアーによって呼び出されます。 SaveCompleted は、フォームが次のいずれかの状態にある場合にのみ呼び出す必要があります。

  • HandsOffFromNormal

  • HandsOffAfterSave

  • NoScribble

実装に関するメモ

SaveCompleted メソッドで実行できるアクションは、メッセージ ポインター パラメーターに含まれる内容とメッセージの状態に応じて、いくつか考えられます。 ただし、アクションが成功したら、 常に pMessage パラメーターが指すメッセージの現在の状態を保存し、フォームを 標準 状態に移行します。

次の表は、 SaveCompleted の実装で実行する必要があるアクションに影響する条件を示しています。

Condition 操作
pMessage パラメーターは NULL で、IPersistMessage::Save メソッドの fSameAsLoad パラメーターは TRUE に設定されています。 登録されているすべてのビューアーの IMAPIViewAdviseSink::OnSaved メソッドを呼び出し、フォームをクリーンとしてマークし、S_OKを返します。
pMessage パラメーターは NULL で、IPersistMessage::Save メソッドの fSameAsLoad パラメーターは FALSE に設定されています。 S_OK ��Ԃ��܂��B
フォームは HandsOffFromNormal 状態です。 現在のメッセージを解放し、 pMessage パラメーターが指すメッセージに置き換えます。 置換メッセージの IUnknown::AddRef メソッドを呼び出し、S_OKを返します。
フォームは HandsOffAfterSave 状態です。 登録されているすべてのビューアーの IMAPIViewAdviseSink::OnSaved メソッドを呼び出し、フォームをクリーンとしてマークし、S_OKを返します。
フォームは NoScribble 状態です。 現在のメッセージを解放し、 pMessage が指すメッセージに置き換えます。 置換メッセージの IUnknown::AddRef メソッドを 呼び出します。 登録されているすべてのビューアーの IMAPIViewAdviseSink::OnSaved メソッドを呼び出し、フォームをクリーンとしてマークし、S_OKを返します。
フォームが HandsOff 状態のいずれかであり、 pMessage パラメーターが NULL に設定されています。 E_INVALIDARGを返します。
フォームは、HandsOff 状態または NoScribble 状態の 1 つ以外の状態です。 E_UNEXPECTEDを返します。

ストレージ オブジェクトの保存の詳細については、 IPersistStorage::SaveCompleted メソッドまたは IPersistFile::SaveCompleted メソッドのドキュメントを参照してください。

関連項目