Compartilhar via


Suporte a MAPI no MFC

O MFC fornece suporte para um subconjunto da MAPI (Interface do Programa de Aplicativo de Mensagens da Microsoft) na classe CDocument. Especificamente, CDocument tem funções de membro que determinam se o suporte de email está presente no computador do usuário final e, nesse caso, habilita um comando Enviar Email cuja ID de comando padrão está ID_FILE_SEND_MAIL. A função de manipulador MFC para esse comando permite que o usuário envie um documento por email eletrônico.

Dica

Embora o MFC não encapsule todo o conjunto de funções MAPI, você ainda pode chamar funções MAPI diretamente, assim como você pode chamar funções de API Win32 diretamente de programas MFC.

Fornecer o comando Enviar Email em seu aplicativo é muito fácil. O MFC fornece a implementação para empacotar um documento (ou seja, um CDocumentobjeto derivado) como um anexo e enviá-lo como email. Esse anexo é equivalente a um comando de Salvamento de Arquivos que salva (serializa) o conteúdo do documento na mensagem de email. Essa implementação chama o cliente de email no computador do usuário para dar ao usuário a oportunidade de endereçar o email e adicionar assunto e texto de mensagem à mensagem de email. Os usuários veem a interface do usuário do aplicativo de email familiar. Essa funcionalidade é fornecida por duas CDocument funções de membro: OnFileSendMail e OnUpdateFileSendMail.

MAPI precisa ler o arquivo para enviar o anexo. Se o aplicativo mantiver seu arquivo de dados aberto durante uma OnFileSendMail chamada de função, o arquivo precisará ser aberto com um modo de compartilhamento que permita que vários processos acessem o arquivo.

Observação

Uma versão de substituição da OnFileSendMail classe COleDocument manipula corretamente documentos compostos.

Para implementar um comando Enviar Email com o MFC

  1. Use o editor de menus do Visual C++ para adicionar um item de menu cuja ID de comando é ID_FILE_SEND_MAIL.

    Essa ID de comando é fornecida pela estrutura em AFXRES.H. O comando pode ser adicionado a qualquer menu, mas geralmente é adicionado ao menu Arquivo .

  2. Adicione manualmente o seguinte ao mapa de mensagens do documento:

    ON_COMMAND(ID_FILE_SENDMAIL, &CMyDoc::OnFileSendMail)
    ON_UPDATE_COMMAND_UI(ID_FILE_SENDMAIL, &CMyDoc::OnUpdateFileSendMail)
    

    Observação

    Este mapa de mensagens funciona para um documento derivado de um CDocument ou COleDocument – ele pega a classe base correta em ambos os casos, mesmo que o mapa de mensagens esteja em sua classe de documento derivada.

  3. Crie seu aplicativo.

Se o suporte ao email estiver disponível, o MFC habilitará seu item de menu com OnUpdateFileSendMail e, posteriormente, processará o comando com OnFileSendMail. Se o suporte ao email não estiver disponível, o MFC removerá automaticamente o item de menu para que o usuário não o veja.

Dica

Em vez de adicionar manualmente entradas de mapa de mensagens conforme descrito anteriormente, você pode usar o Assistente de Classe de classe para mapear mensagens para funções. Para obter mais informações, consulte Mapeamento de Mensagens para Funções.

Para obter informações relacionadas, consulte a visão geral do MAPI .

Para obter mais informações sobre as CDocument funções membro que habilitam o MAPI, consulte:

Consulte também

MAPI