共用方式為


IPersistMessage::SaveCompleted

適用於:Outlook 2013 |Outlook 2016

通知表單已完成儲存作業。

HRESULT SaveCompleted(
  LPMESSAGE pMessage
);

參數

pMessage

[in]新儲存之訊息的指標。

傳回值

S_OK

通知成功。

E_INVALIDARG

pMessage 參數為 NULL,且窗體處於 HandsOffFromNormalHandsOffAfterSave 狀態。

E_UNEXPECTED

表單不是下列其中一種狀態:

註解

表單查看器會呼叫 IPersistMessage::SaveCompleted 方法,以通知表單已儲存所有擱置中的變更。 只有在窗體處於下列其中一種狀態時,才應該呼叫 SaveCompleted

  • HandsOffFromNormal

  • HandsOffAfterSave

  • NoScribble

實作者注意事項

SaveCompleted 方法可以執行數個可能的動作,視訊息指標參數包含的內容,以及訊息的狀態而定。 不過,當動作成功時,請一律儲存 pMessage 參數指向的訊息目前狀態,並將窗體轉換成其 Normal 狀態。

下表描述會影響您在 SaveCompleted 實作中應採取之動作的條件。

Condition 動作
pMessage 參數為 NULL,而 IPersistMessage::Save 方法的 fSameAsLoad 參數設定為 TRUE。 呼叫所有已註冊 檢視者的 IMAPIViewAdviseSink::OnSaved 方法、將窗體標示為乾淨,並傳回S_OK。
pMessage 參數為 NULL,而 IPersistMessage::Save 方法的 fSameAsLoad 參數設定為 FALSE。 傳回S_OK。
窗體處於 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 狀態。 傳回E_UNEXPECTED。

如需儲存儲存對象的詳細資訊,請參閱 IPersistStorage::SaveCompletedIPersistFile::SaveCompleted 方法的檔。

另請參閱