Compartilhar via


IPersistMessage::SaveCompleted

Aplica-se a: Outlook 2013 | Outlook 2016

Notifica o formulário em que uma operação de salvamento foi concluída.

HRESULT SaveCompleted(
  LPMESSAGE pMessage
);

Parâmetros

pMessage

[in] Um ponteiro para a mensagem recém-salva.

Valor de retorno

S_OK

A notificação foi bem-sucedida.

E_INVALIDARG

O parâmetro pMessage é NULL e o formulário está no estado HandsOffFromNormal ou HandsOffAfterSave .

E_UNEXPECTED

O formulário não está em um dos seguintes estados:

Comentários

O método IPersistMessage::SaveCompleted é chamado por um visualizador de formulários para notificar o formulário de que todas as alterações pendentes foram salvas. SaveCompleted deve ser chamado somente quando o formulário estiver em um dos seguintes estados:

  • HandsOffFromNormal

  • HandsOffAfterSave

  • NoScribble

Observações para implementadores

Há várias ações possíveis que o método SaveCompleted pode executar, dependendo do parâmetro do ponteiro da mensagem e em que estado a mensagem está. No entanto, quando uma ação for bem-sucedida, salve sempre o estado atual da mensagem para o qual o parâmetro pMessage aponta e faça a transição do formulário para seu estado normal .

A tabela a seguir descreve as condições que afetam as ações que você deve tomar na implementação do SaveCompleted.

Condition Action
O parâmetro pMessage é NULL e o parâmetro fSameAsLoad do método IPersistMessage::Save é definido como TRUE. Chame o método IMAPIViewAdviseSink::OnSaved de todos os visualizadores registrados, marque o formulário como limpo e retorne S_OK.
O parâmetro pMessage é NULL e o parâmetro fSameAsLoad do método IPersistMessage::Save é definido como FALSE. Retorne S_OK.
O formulário está no estado HandsOffFromNormal. Libere a mensagem atual e substitua-a pela mensagem apontada pelo parâmetro pMessage . Chame o método IUnknown::AddRef da mensagem de substituição e retorne S_OK.
O formulário está no estado HandsOffAfterSave. Chame o método IMAPIViewAdviseSink::OnSaved de todos os visualizadores registrados, marque o formulário como limpo e retorne S_OK.
O formulário está no estado NoScribble . Libere a mensagem atual e substitua-a pela mensagem apontada por pMessage. Chame o método IUnknown::AddRef da mensagem de substituição. Chame o método IMAPIViewAdviseSink::OnSaved de todos os visualizadores registrados, marque o formulário como limpo e retorne S_OK.
O formulário está em um dos estados do HandsOff e o parâmetro pMessage é definido como NULL. Retornar E_INVALIDARG.
O formulário está em um estado diferente de um dos estados do HandsOff ou do estado NoScribble. Retornar E_UNEXPECTED.

Para obter mais informações sobre como salvar objetos de armazenamento, consulte a documentação dos métodos IPersistStorage::SaveCompleted ou IPersistFile::SaveCompleted .

Confira também