Compartilhar via


Suporte a MAPI no MFC

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

Dica

Embora o MFC não encapsule todo o conjunto de funções MAPI, você ainda pode chamar funções MAPI diretamente, assim como pode chamar funções da 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 objeto derivado de CDocument) como um anexo e enviá-lo como email. Esse anexo é equivalente a um comando Salvar Arquivo 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 o texto de assunto e mensagem à mensagem de email. Os usuários veem a interface do usuário do aplicativo de email familiar. Essa funcionalidade é fornecida por duas funções membro CDocument: OnFileSendMail e OnUpdateFileSendMail.

O MAPI precisa ler o arquivo para enviar o anexo. Se o aplicativo mantiver o arquivo de dados aberto durante uma chamada de função OnFileSendMail, 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 de OnFileSendMail para a 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 CDocument ou de COleDocument — ele seleciona a classe base correta em ambos os casos, mesmo que o mapa de mensagens esteja em sua classe de documento derivada.

  3. Compile o aplicativo.

Se o suporte para email estiver disponível, o MFC habilitará seu item de menu com OnUpdateFileSendMail e, posteriormente, processará o comando com OnFileSendMail. Se o suporte para email não estiver disponível, o MFC removerá automaticamente seu 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 para mapear mensagens para funções. Para obter mais informações, consulte Mapeando mensagens para funções.

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

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

Confira também

MAPI