Compartir por


Compatibilidad MAPI en MFC

MFC proporciona compatibilidad con un subconjunto de la interfaz de programa de aplicaciones (MAPI) de Mensajes de Microsoft en la clase CDocument. En concreto, CDocument tiene funciones miembro que determinan si la compatibilidad con correo está presente en el equipo del usuario final y, si es así, habilite un comando Enviar correo cuyo identificador de comando estándar sea ID_FILE_SEND_MAIL. La función de controlador MFC para este comando permite al usuario enviar un documento por correo electrónico.

Sugerencia

Aunque MFC no encapsula todo el conjunto de funciones MAPI, puede llamar a las funciones MAPI directamente y también puede llamar a funciones de API Win32 directamente desde programas MFC.

Proporcionar el comando Enviar correo en la aplicación es muy fácil. MFC proporciona la implementación para empaquetar un documento (es decir, un objeto derivado de CDocument) como datos adjuntos y enviarlo como correo electrónico. Estos datos adjuntos son equivalentes a un comando Guardar archivo que guarda (serializa) el contenido del documento en el mensaje de correo electrónico. Esta implementación llama al cliente de correo electrónico en el equipo del usuario para dar al usuario la oportunidad de dirigir el correo y agregar el asunto y el texto del mensaje al mensaje de correo electrónico. Los usuarios ven la interfaz de usuario de su aplicación de correo habitual. Esta funcionalidad se proporciona mediante dos funciones miembro CDocument: OnFileSendMail y OnUpdateFileSendMail.

MAPI debe leer el archivo para enviar los datos adjuntos. Si la aplicación mantiene abierto su archivo de datos durante una llamada de función OnFileSendMail, el archivo debe abrirse con un modo de recurso compartido que permita que varios procesos accedan al archivo.

Nota:

Una versión de invalidación de OnFileSendMail para la clase COleDocument controla correctamente los documentos compuestos.

Para implementar un comando Enviar correo con MFC

  1. Use el editor de menús de Visual C++ para agregar un elemento de menú cuyo identificador de comando sea ID_FILE_SEND_MAIL.

    El marco de trabajo proporciona este identificador de comando en AFXRES.H. El comando se puede agregar a cualquier menú, pero normalmente se agrega al menú Archivo.

  2. Agregue manualmente lo siguiente a la asignación de mensajes del documento:

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

    Nota:

    Este mapa de mensajes funciona para un documento derivado de CDocument o COleDocument; recoge la clase base correcta en cualquier caso, aunque la asignación de mensajes se encuentre en la clase de documento derivada.

  3. Compilación de la aplicación.

Si la compatibilidad con correo electrónico está disponible, MFC habilita el elemento de menú con OnUpdateFileSendMail y, posteriormente, procesa el comando con OnFileSendMail. Si la compatibilidad con correo electrónico no está disponible, MFC quita automáticamente el elemento de menú para que el usuario no lo vea.

Sugerencia

En lugar de agregar manualmente entradas de asignación de mensajes como se ha descrito anteriormente, puede usar el Asistente para clases de la clase para asignar mensajes a funciones. Para obtener más información, consulte Asignación de mensajes a funciones.

Para obtener información relacionada, consulte la información general de MAPI.

Para obtener más información sobre las funciones miembro CDocument que permiten el uso de MAPI, consulte:

Consulte también

MAPI