IPersistMessage::SaveCompleted
適用対象: Outlook 2013 | Outlook 2016
保存操作が完了したことをフォームに通知します。
HRESULT SaveCompleted(
LPMESSAGE pMessage
);
パラメーター
pMessage
[in]新しく保存されたメッセージへのポインター。
戻り値
S_OK
通知が成功しました。
E_INVALIDARG
pMessage パラメーターは NULL で、フォームは HandsOffFromNormal または HandsOffAfterSave 状態です。
E_UNEXPECTED
フォームが次のいずれかの状態ではありません。
HandsOffFromNormal
HandsOffAfterSave
注釈
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 メソッドのドキュメントを参照してください。