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:
HandsOffFromNormal
HandsOffAfterSave
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 .