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
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.
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 deCOleDocument
— ele seleciona a classe base correta em ambos os casos, mesmo que o mapa de mensagens esteja em sua classe de documento derivada.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: