此版本的新增功能
适用于:Outlook 2013 | Outlook 2016
Microsoft Outlook MAPI 参考已更新为包含各种新功能的文档。
新内容
为以下功能添加了内容:
主题入门 Outlook 2013 MAPI 参考已更新,以引用有关 Outlook 和 MAPI 功能的编程模型的综合信息,以帮助您确定最适合你的需求的 API 和技术。 还修订了以下主题中引用的技术文章的链接:
邮件存储提供程序示例 - 示例包装的 PST 存储提供程序 代码现已修订,以识别和适应 Outlook 2013。 有关详细信息,请参阅本主题中的以前修订的内容。
自动完成Stream - Nickname 缓存主题(以前为 Nk2 文件格式)已更新,以反映 Outlook 2013 和 Outlook 2010 中的更改。 以下主题现已修订,以提供有关Microsoft Outlook 2003/Microsoft Office Outlook 2007 和二进制文件分析的 .nk2 文件格式开发人员指南的信息。 有关详细信息,请参阅本主题中的以前修订的内容。
Interfaces-IAddrBook::OpenEntry 主题记录了打开通讯簿条目并返回指向用于访问通讯簿条目的接口的指针的方法。 它以前在 ulFlags 参数 MAPI_GAL_ONLY中包含一个标志,该标志仅用于打开全局地址列表 (GAL) ,并且已对其进行修改以包括其定义。
属性 - 已添加 名为属性 (PidTagConversationKey 规范属性) 主题的PR_CONVERSATION_KEY,并且与 IPM 相关。仅 Outlook MAPI 中的 MessageManager 邮件。 与它相关的以下主题以及 TNEF) 流文档 (Transport-Neutral 封装格式已修订:
MAPI 初始化监视器
- 有时,使用 MAPI 的应用程序可能需要知道初始化完成的时间。 例如,它有多个线程可以初始化 MAPI,或者为了响应初始化 MAPI,应用程序会执行一些工作,但不希望始终启动 MAPI 堆栈。 初始化监视器通过从 OLMAPI32.DLL) 导出 (函数和下面所述的几个简单接口来提供此功能。
HRESULT STDAPICALLTYPE CreateMapiInitializationMonitor (IMAPIInitMonitor ppInitMonitor)
- 这是从 OLMAPI32.DLL 导出的入口点允许调用方检索接口来查询当前初始化状态、设置初始化完成的回调或阻止当前线程,直到完成。 从此 API 返回的对象是可重用的且线程安全,并且可以从任何线程(而不仅仅是从检索它的线程)调用。 此外,与从 MAPI 公开的其他对象不同,只要加载 DLL,此对象就有效,它可以跨初始化会话重用,并且可以在调用 MAPIInitialize 之前或之后使用。 通过 COM 标准 HRESULT 返回成功或失败,并将 out 参数分配给 IMAPIInitMonitor 的实例。
接口:IMAPIInitMonitor
IFACEMETHODIMP_ (BOOL) IsInitialized ()
- 返回 MAPI 初始化的当前状态
IFACEMETHODIMP 等待 (DWORD 超时)
- 在此线程上启动 BLOCKING 调用,当指定的毫秒数已过或 MAPI 已初始化时,该调用将返回。 INFINITE 可用于无限等待。
IFACEMETHODIMP BeginWait (DWORD 超时,IMAPIWaitResult ppResult)
- 开始等待 MAPI 初始化或经过指定的毫秒数。 这将返回一个 IMAPIWaitResult 接口,该接口应调用“End”,以便开始等待。 这允许调用方控制在等待时阻止的线程。
接口 IMAPIWaitResult
IFACEMETHODIMP 结束 () 重写
- 调用 以在调用它的线程上启动阻塞等待,不需要是名为“BeginWait”的同一线程。
以前修订的内容
在早期版本的 Outlook MAPI 参考中添加了以下功能的内容:
Microsoft Outlook 2013允许非传统部署方案,例如并行部署和即点即用。 这些方案可能会使用于加载适当 MAPI 库的逻辑复杂化。 MAPI 开发人员现在可以选择显式链接到 MAPI 函数,并且可以选择显式链接到默认 MAPI 客户端的 MAPI 存根 (例如,Msmapi32.dll Outlook) ,而无需浏览 MAPI 库和 Windows MAPI 存根。 有关显式链接与隐式链接相比的详细信息,请参阅 链接到 MAPI 函数。
GITHub 上的 MAPIStubLibrary 上发布的 MAPI 存根库为 Mapi32.lib 提供了一个支持构建 32 位和 64 位 MAPI 应用程序的下拉替换。
对 64 位Microsoft Outlook 的支持 — 适用于 API 元素的参考主题已更新为与支持 64 位 Outlook 的新头文件相对应。 MAPIStubLibrary 中提供了这些头文件。 检查 Outlook 版本中提供了一个新的代码示例,演示如何检查已安装的 Outlook 版本是否为 64 位Microsoft Outlook 2010并且是否已针对 Outlook 2013 进行了修订。 如果现有的 32 位 MAPI 应用程序将在安装了 64 位 Outlook 的 64 位操作系统上运行,则需要将 32 位应用程序重新生成为 64 位应用程序。 有关 MAPI 对 64 位 Outlook 的支持的详细信息,请参阅 在 32 位和 64 位平台上构建 MAPI 应用程序。
消息存储提供程序示例 - 示例 包装 PST 存储提供程序 之前已更新为支持 64 位体系结构。 示例的 初始化包装 PST 存储提供程序 主题现已扩展,以提供有关“包装的 PST 和 Unicode 路径”的信息。
自动完成Stream - Nickname 缓存主题(以前为 Nk2 文件格式)已更新,以反映 Outlook 2013 和 Outlook 2010 中的更改。 用户撰写电子邮件时显示在“收件人”、“抄送”和“密件抄送”编辑框中的名称列表等信息现在将保存到本地计算机上邮件的自动完成Stream,而不是像 Outlook 2007 中那样将其保存到文件中。
与自动完成Stream交互
加载自动完成Stream
保存自动完成Stream
MAPI 客户端的快速关闭支持 - MAPI 客户端现在可以启动快速关闭,并让 MAPI 子系统通知加载的提供程序,以最大程度地减少快速关闭造成的数据丢失。 为客户端和提供程序添加了其他接口,以支持快速关闭。 有关快速关闭的详细信息,请参阅 MAPI 中的客户端关闭。
Stream Outlook 项目的字段定义结构 - 添加了 PidLidPropertyDefinitionStream 属性的二进制流的文档。 此属性指定 Outlook 项目内置字段的所有自定义字段的定义和数据绑定设置。
个人存储替代 - 添加了以下接口及其各自的方法,以支持替代个人文件夹文件 (PST) 存储提供程序 PSTDisableGrow 策略:
使用多个 Exchange 帐户 — 添加了 MAPI 通讯簿 API 的文档。 此 API 已得到增强,支持 Microsoft Outlook 2010 中的多个 Exchange 帐户,现在包括Microsoft Outlook 2013。 若要使用多个 Exchange 帐户正确解析地址,请使用采用帐户上下文的新函数,以便对通讯簿的调用搜索正确的 Exchange 帐户。
MAPI 文件格式 - MAPI 配置信息已展开,说明如何在 MapiSvc.inf 中注册服务和服务提供程序中使用路径。
属性 - 除了之前已添加的 38 个其他标记属性和命名属性的文档外,还添加了以下标记属性:
MAPI 常量 - 已扩展合并 的 MAPI 常量 。 在以前的版本中,它们分布在多个主题中,但现在收集在单个主题中,以便更轻松地发现和使用它们。 它们还进行了扩展,以提供更广泛的覆盖面,包括以下部分:
Exchange 通讯簿和消息存储错误代码的定义
Exchange Server邮箱缓存模式配额的定义