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 參數指向的訊息目前狀態,並將窗體轉換成其 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::SaveCompleted 或 IPersistFile::SaveCompleted 方法的檔。