IPersistMessage::SaveCompleted
Область применения: Outlook 2013 | Outlook 2016
Уведомляет форму о завершении операции сохранения.
HRESULT SaveCompleted(
LPMESSAGE pMessage
);
Параметры
pMessage
[в] Указатель на только что сохраненное сообщение.
Возвращаемое значение
S_OK
Уведомление прошло успешно.
E_INVALIDARG
Параметр pMessage имеет значение NULL, а форма находится в состоянии HandsOffFromNormal или HandsOffAfterSave .
E_UNEXPECTED
Форма не находится в одном из следующих состояний:
HandsOffFromNormal
HandsOffAfterSave
Замечания
Средство просмотра форм вызывает метод IPersistMessage::SaveCompleted , чтобы уведомить форму о сохранении всех ожидающих изменений. SaveCompleted следует вызывать только в том случае, если форма находится в одном из следующих состояний:
HandsOffFromNormal
HandsOffAfterSave
NoScribble
Примечания для исполнителей
Существует несколько возможных действий, которые может выполнять метод SaveCompleted в зависимости от того, что содержит параметр указателя сообщения и в каком состоянии находится сообщение. Однако при успешном выполнении действия всегда сохраняйте текущее состояние сообщения, на которое указывает параметр pMessage , и переведите форму в обычное состояние.
В следующей таблице описаны условия, влияющие на действия, которые необходимо выполнить в реализации SaveCompleted.
Condition | Действие |
---|---|
Параметр pMessage имеет значение NULL, а параметр fSameAsLoad метода IPersistMessage::Save имеет значение TRUE. | Вызовите метод IMAPIViewAdviseSink::OnSaved всех зарегистрированных средств просмотра, пометьте форму как чистую и верните S_OK. |
Параметр pMessage имеет значение NULL, а параметр fSameAsLoad метода IPersistMessage::Save имеет значение 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 .