Compartilhar via


IMAPIForm::ShutdownForm

Aplica-se a: Outlook 2013 | Outlook 2016

Fecha o formulário.

HRESULT ShutdownForm(
  ULONG ulSaveOptions
);

Parâmetros

ulSaveOptions

[in] Um valor que controla como ou se os dados no formulário são salvos antes do formulário ser fechado. Um dos sinalizadores a seguir pode ser definido:

SAVEOPTS_NOSAVE

Os dados de formulário não devem ser salvos.

SAVEOPTS_PROMPTSAVE

O usuário deve ser solicitado a salvar todos os dados alterados no formulário.

SAVEOPTS_SAVEIFDIRTY

Os dados de formulário devem ser salvos se eles tiverem sido alterados desde a última salvação. Se nenhuma interface de usuário estiver sendo exibida, o formulário poderá alternar opcionalmente para usar a funcionalidade para a opção SAVEOPTS_NOSAVE.

Valor de retorno

S_OK

O formulário foi fechado.

E_UNEXPECTED

O formulário já estava fechado por uma chamada anterior para ShutdownForm.

Comentários

Os visualizadores de formulário chamam o método IMAPIForm::ShutdownForm para fechar um formulário.

Observações para implementadores

Execute as seguintes tarefas na implementação do ShutdownForm:

  1. Verifique se um visualizador ainda não chamou ShutdownForm e retorne E_UNEXPECTED se tiver. Embora isso seja improvável, você deve marcar.

  2. Chame o método IUnknown::AddRef do formulário para que o armazenamento para o formulário e quaisquer estruturas de dados internas permaneçam disponíveis até que o processamento seja concluído.

  3. Determine se há alterações não salvas nos dados do formulário. Salve dados não salvos de acordo com como o parâmetro ulSaveOptions é definido chamando o método IMAPIMessageSite::SaveMessage do visualizador.

  4. Destrua a janela de interface do usuário do formulário.

  5. Libere os objetos do site de mensagens e mensagens do formulário chamando seus métodos IUnknown::Release .

  6. Notifique todos os visualizadores registrados do desligamento pendente chamando seus métodos IMAPIViewAdviseSink::OnShutdown .

  7. Chame o método IMAPIViewContext::SetAdviseSink para cancelar o registro do formulário para notificação definindo o ponteiro do coletor de aconselhamento como nulo.

  8. Chame a função MAPIFreeBuffer para liberar a memória para as propriedades do formulário.

  9. Chame o método IUnknown::Release do formulário, correspondendo à chamada AddRef feita na etapa 2.

  10. Retorne S_OK.

Observação

Depois que essas ações forem concluídas, os únicos métodos válidos no objeto de formulário que podem ser chamados são aqueles da interface IUnknown .

Notas para chamadores

Quando ShutdownForm retornar, independentemente de retornar um erro, libere o formulário chamando seu método IUnknown::Release . Você pode ignorar com segurança todos os erros retornados pelo ShutdownForm.

Confira também

IMAPIMessageSite::SaveMessage

IMAPIViewAdviseSink::OnShutdown

IMAPIViewContext::SetAdviseSink

MAPIFreeBuffer

IMAPIForm : IUnknown