Compartilhar via


IMessage::SubmitMessage

Aplica-se a: Outlook 2013 | Outlook 2016

Salva todas as propriedades da mensagem e marca a mensagem como pronta para ser enviada.

HRESULT SubmitMessage(
  ULONG ulFlags
);

Parâmetros

ulFlags

[in] A máscara de bits de sinalizadores usada para controlar como uma mensagem é enviada. O seguinte sinalizador pode ser definido:

FORCE_SUBMIT

O MAPI deve enviar a mensagem imediatamente. Esse sinalizador não está em uso no momento.

Valor de retorno

S_OK

A chamada foi bem-sucedida e retornou o valor ou valores esperados.

MAPI_E_NO_RECIPIENTS

A tabela de destinatário da mensagem está vazia.

Comentários

O método IMessage::SubmitMessage marca uma mensagem como pronta para ser transmitida. MAPI passa mensagens para o sistema de mensagens subjacentes na ordem em que elas são marcadas para envio. Devido a essa funcionalidade, uma mensagem pode ficar em um repositório de mensagens por algum tempo antes que o sistema de mensagens subjacente possa assumir a responsabilidade por ela. A ordem de recebimento no destino está no controle do sistema de mensagens subjacente e não corresponde necessariamente à ordem em que as mensagens foram enviadas.

Observações para implementadores

Chame o método IMAPIProp::SaveChanges da mensagem para salvá-la e, em seguida, marcar a propriedade PR_MESSAGE_FLAGS (PidTagMessageFlags) da mensagem. Se o sinalizador MSGFLAG_RESEND estiver definido, chame IMAPISupport::P repareSubmit. PrepareSubmit atualiza o tipo de destinatário e a propriedade PR_RESPONSIBILITY (PidTagResponsibility) para todos os destinatários na mensagem de reenviamento.

Notas para chamadores

Quando SubmitMessage retorna, todos os ponteiros para a mensagem e suas subobjetas associadas são mensagens, pastas, anexos, fluxos, tabelas e assim por diante não são mais válidos. O MAPI não permite mais operações nesses ponteiros, exceto para chamar seus métodos IUnknown::Release . O MAPI foi projetado de modo que, depois que o SubmitMessage for chamado, você deve liberar a mensagem e todos os subobjetos associados. No entanto, se SubmitMessage retornar um valor de erro indicando informações ausentes ou inválidas, a mensagem permanecerá aberta e os ponteiros permanecerão válidos.

Para cancelar uma operação de envio, obtenha e armazene um ponteiro para a propriedade PR_ENTRYID (PidTagEntryId) da mensagem antes que a mensagem seja enviada. Como o identificador de entrada de uma mensagem é invalidado após o envio da mensagem, é necessário salvá-la antes de chamar SubmitMessage. Para cancelar o envio, aponte o parâmetro lpEntryId para este identificador de entrada e chame IMsgStore::AbortSubmit.

Referência do MFCMAPI

Para ver códigos de exemplo do MFCMAPI, confira a tabela a seguir.

Arquivo Função Comentário
FolderDlg.cpp
CFolderDlg::OnSubmitMessage
O MFCMAPI usa o método IMessage::SubmitMessage para enviar a mensagem selecionada.

Confira também

IMsgStore::AbortSubmit

IMessage : IMAPIProp

MFCMAPI como exemplo de código