Поделиться через


IPersistMessage::SaveCompleted

Область применения: Outlook 2013 | Outlook 2016

Уведомляет форму о завершении операции сохранения.

HRESULT SaveCompleted(
  LPMESSAGE pMessage
);

Параметры

pMessage

[в] Указатель на только что сохраненное сообщение.

Возвращаемое значение

S_OK

Уведомление прошло успешно.

E_INVALIDARG

Параметр pMessage имеет значение NULL, а форма находится в состоянии HandsOffFromNormal или HandsOffAfterSave .

E_UNEXPECTED

Форма не находится в одном из следующих состояний:

Замечания

Средство просмотра форм вызывает метод 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 .

См. также