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. |