Compartilhar via


IMAPIFolder::DeleteMessages

Aplica-se a: Outlook 2013 | Outlook 2016

Exclui uma ou mais mensagens.

HRESULT DeleteMessages(
  LPENTRYLIST lpMsgList,
  ULONG_PTR ulUIParam,
  LPMAPIPROGRESS lpProgress,
  ULONG ulFlags
);

Parâmetros

lpMsgList

[in] Um ponteiro para uma estrutura ENTRYLIST que contém o número de mensagens a serem excluídas e uma matriz de estruturas ENTRYID que identificam as mensagens.

ulUIParam

[in] Um identificador para a janela pai do indicador de progresso. O parâmetro ulUIParam é ignorado, a menos que o sinalizador MESSAGE_DIALOG seja definido no parâmetro ulFlags .

lpProgress

[in] Um ponteiro para um objeto de progresso que exibe um indicador de progresso. Se NULL for passado em lpProgress, o provedor do repositório de mensagens exibirá um indicador de progresso usando a implementação do objeto de progresso MAPI. O parâmetro lpProgress é ignorado, a menos que o sinalizador MESSAGE_DIALOG seja definido no parâmetro ulFlags .

ulFlags

[in] Um bitmask de sinalizadores que controla como as mensagens são excluídas. Os seguintes sinalizadores podem ser definidos:

DELETE_HARD_DELETE

Remove permanentemente todas as mensagens, incluindo as excluídas.

MESSAGE_DIALOG

Exibe um indicador de progresso à medida que a operação prossegue.

Valor de retorno

S_OK

A mensagem ou as mensagens especificadas foram excluídas com êxito.

MAPI_W_PARTIAL_COMPLETION

A chamada foi bem-sucedida, mas nem todas as mensagens foram excluídas com êxito. Quando esse aviso é retornado, a chamada deve ser tratada como bem-sucedida. Para testar esse aviso, use a macro HR_FAILED . Para obter mais informações, confira Usando macros para tratamento de erros.

Comentários

O método IMAPIFolder::D eleteMessages exclui mensagens de uma pasta. Mensagens que não existem, que foram movidas para outro lugar, que estão abertas com permissão de leitura/gravação ou que estão atualmente enviadas não podem ser excluídas.

Observações para implementadores

Quando a operação de exclusão envolver mais de uma mensagem, execute a operação o mais completamente possível para cada pasta, mesmo que uma ou mais mensagens não possam ser excluídas. Não interrompa a operação prematuramente, a menos que ocorra uma falha que esteja fora de seu controle, como ficar sem memória, ficar sem espaço em disco ou corrupção no repositório de mensagens.

Notas para chamadores

Espere esses valores retornados nas seguintes condições.

Condition Valor de retorno
DeleteMessages excluiu com êxito todas as mensagens. S_OK
DeleteMessages não pôde excluir com êxito cada mensagem e subpasta. MAPI_W_PARTIAL_COMPLETION ou MAPI_E_NOT_FOUND
DeleteMessages não pôde ser concluído. Qualquer valor de erro, exceto MAPI_E_NOT_FOUND

Quando DeleteMessages não puder ser concluído, não suponha que nenhum trabalho tenha sido feito. DeleteMessages pode ter sido capaz de excluir uma ou mais mensagens antes de encontrar o erro.

DeleteMessages retorna MAPI_W_PARTIAL_COMPLETION ou MAPI_E_NOT_FOUND, dependendo da implementação do repositório de mensagens.

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::OnDeleteSelectedItem
O MFCMAPI usa o método IMAPIFolder::D eleteMessages para excluir as mensagens especificadas.

Confira também

ENTRYID

ENTRYLIST

IMAPIFolder : IMAPIContainer

MFCMAPI como exemplo de código

Usando macros para tratamento de erros