Compartir a través de


IPersistMessage::SaveCompleted

Hace referencia a: Outlook 2013 | Outlook 2016

Notifica al formulario que se ha completado una operación de guardado.

HRESULT SaveCompleted(
  LPMESSAGE pMessage
);

Parameters

pMessage

[in] Puntero al mensaje recién guardado.

Valor devuelto

S_OK

La notificación se realizó correctamente.

E_INVALIDARG

El parámetro pMessage es NULL y el formulario está en el estado HandsOffFromNormal o HandsOffAfterSave .

E_UNEXPECTED

El formulario no está en uno de los siguientes estados:

Comentarios

Un visor de formularios llama al método IPersistMessage::SaveCompleted para notificar al formulario que se han guardado todos los cambios pendientes. Solo se debe llamar a SaveCompleted cuando el formulario se encuentra en uno de los siguientes estados:

  • HandsOffFromNormal

  • HandsOffAfterSave

  • NoScribble

Notas a los implementadores

Hay varias acciones posibles que el método SaveCompleted puede realizar, en función de lo que contenga el parámetro de puntero de mensaje y del estado en el que se encuentra el mensaje. Sin embargo, cuando una acción se realiza correctamente, guarde siempre el estado actual del mensaje al que apunta el parámetro pMessage y realice la transición del formulario a su estado Normal .

En la tabla siguiente se describen las condiciones que afectan a las acciones que debe realizar en la implementación de SaveCompleted.

Condition Action
El parámetro pMessage es NULL y el parámetro fSameAsLoad del método IPersistMessage::Save se establece en TRUE. Llame al método IMAPIViewAdviseSink::OnSaved de todos los visores registrados, marque el formulario como limpio y devuelva S_OK.
El parámetro pMessage es NULL y el parámetro fSameAsLoad del método IPersistMessage::Save se establece en FALSE. Devuelve S_OK.
El formulario está en estado HandsOffFromNormal. Libere el mensaje actual y reemplácelo por el mensaje al que apunta el parámetro pMessage . Llame al método IUnknown::AddRef del mensaje de reemplazo y devuelva S_OK.
El formulario está en estado HandsOffAfterSave. Llame al método IMAPIViewAdviseSink::OnSaved de todos los visores registrados, marque el formulario como limpio y devuelva S_OK.
El formulario está en estado NoScribble . Libere el mensaje actual y reemplácelo por el mensaje al que apunta pMessage. Llame al método IUnknown::AddRef del mensaje de reemplazo. Llame al método IMAPIViewAdviseSink::OnSaved de todos los visores registrados, marque el formulario como limpio y devuelva S_OK.
El formulario está en uno de los estados HandsOff y el parámetro pMessage se establece en NULL. Devuelve E_INVALIDARG.
El formulario está en un estado distinto de uno de los estados HandsOff o el estado NoScribble. Devuelve E_UNEXPECTED.

Para obtener más información sobre cómo guardar objetos de almacenamiento, vea la documentación de los métodos IPersistStorage::SaveCompleted o IPersistFile::SaveCompleted .

Vea también