MFC 中的 MAPI 支持

MFC 为类 CDocument中的Microsoft消息传递应用程序接口(MAPI)的子集提供支持。 具体而言, CDocument 具有成员函数,用于确定最终用户计算机上是否存在邮件支持;如果是这样,请启用标准命令 ID 为ID_FILE_SEND_MAIL的发送邮件命令。 此命令的 MFC 处理程序函数允许用户通过电子邮件发送文档。

小窍门

尽管 MFC 未封装整个 MAPI 函数集,但仍可以直接调用 MAPI 函数,就像可以直接从 MFC 程序调用 Win32 API 函数一样。

在应用程序中提供“发送邮件”命令非常简单。 MFC 提供将文档(即 CDocument-derived 对象)打包为附件并将其作为邮件发送的实现。 此附件等效于将文档内容保存到邮件中的文件保存命令(序列化)。 此实现调用用户计算机上的邮件客户端,使用户有机会处理邮件以及向邮件添加主题和邮件文本。 用户会看到他们熟悉的邮件应用程序的用户界面。 此功能由两 CDocument 个成员函数提供: OnFileSendMailOnUpdateFileSendMail

MAPI 需要读取文件以发送附件。 如果应用程序在函数调用期间 OnFileSendMail 保持数据文件打开状态,则需要使用共享模式打开该文件,该模式允许多个进程访问该文件。

注释

COleDocumentOnFileSendMail重写版本正确处理复合文档。

使用 MFC 实现“发送邮件”命令

  1. 使用 Visual C++ 菜单编辑器添加其命令 ID 为ID_FILE_SEND_MAIL的菜单项。

    此命令 ID 由 AFXRES.H 中的框架提供。 该命令可以添加到任何菜单,但通常将其添加到 “文件 ”菜单。

  2. 将以下内容手动添加到文档的邮件映射中:

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

    注释

    此消息映射适用于从任 CDocument 一派生的文档,或者 COleDocument ,无论哪种情况,它都选取正确的基类,即使消息映射位于派生的文档类中。

  3. 生成应用程序。

如果邮件支持可用,MFC 将启用 菜单项,并随后使用 < a0/> 处理命令。 如果邮件支持不可用,MFC 会自动删除菜单项,以便用户看不到它。

小窍门

可以使用 类类向导 将消息映射到函数,而不是像前面所述手动添加消息映射条目。 有关详细信息,请参阅 将消息映射到函数

有关相关信息,请参阅 MAPI 概述。

有关启用 MAPI 的成员函数的详细信息 CDocument ,请参阅:

另请参阅

MAPI