客户端的消息传递开发支持指南

文章翻译 文章翻译
文章编号: 266353 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

简介

本文介绍什么受支持,以及什么不支持在开发与基于 Microsoft 的消息传递的产品或 Microsoft 技术集成的自定义解决方案时。本文还包含的大部分知道您与 Microsoft 产品和 Microsoft 技术的开发时的关键信息。但是,本文未涵盖所有方案。 如果您有关于某一特定的解决方案是否受支持的任何问题,请与 Microsoft 客户支持服务部门联系。

本文还讨论了特定的技术和特定的情况下,为开发人员提供的指导。

更多信息

"支持"一词用于描述是否 Microsoft 客户支持服务或 $ Microsoft 服务可以帮助您当您试图以特定方式实现某些内容。通常,术语也使用的是否 Microsoft 产品组将有可能解决给定方案的上下文中。

由于的产品、 技术和需要测试的版本的大型矩阵,我们不能说出已设计或测试所有的方案。因此,我们鼓励您在设计自定义解决方案时使用下列最佳实施策略:
  • 仅使用 microsoft 所记录的 api。这样可以避免您的解决方案将无法与一种产品的更新版本一起或一起使用的产品的 service pack 的风险增加。例如对于可以使用 Microsoft Win32 API 操作 Microsoft Office Outlook 窗口。但是,Win32 API 不受支持。某些解决方案可能支持特定的 API,您使用的上下文中。但是,这些解决方案通常不支持的上下文中的 Office 应用程序和时,即可使用该应用程序中创建自定义解决方案。异常是由 Microsoft 说明的方案。
  • 避免混合使用较新的技术和较旧的技术,如果可执行此操作。混合使用较新的技术和较旧技术会增加可能性方案被未经过测试,该方案不受支持。
  • 在使用 Office 应用程序时, 通过使用最早版本的运行的解决方案的 Office 开发解决方案。

将与 Outlook 属性集成

使用 outlook,Microsoft 的 Exchange 服务器和其他 Microsoft 产品存储区中 MAPI 数据存储如个人文件夹 (.pst) 文件 Exchange 邮箱存储或 Exchange 公用文件夹存储。尽管此数据的部分是可见的各种其他数据是不可见的并且存储出于其他原因。

在某些种情况下没有您在 Outlook 中看到的内容以及基础 MAPI 数据库中存储的内容之间的一一对应。电子邮件的 主题 框是一个这样的示例,因为此框与 PR_SUBJECT MAPI 属性相对应。在这种情况下该属性之前 Outlook,这是因为上一个 Microsoft 电子邮件客户端使用此属性。其他属性也具有一对一的对应关系,但特定于 Outlook。 例如对于联系人的网站地址存储在一个特定的 MAPI 命名属性。

注意有关在 Outlook 中的命名属性的详细信息,请参阅"已命名属性的 MAPI 特有信息"部分。

在某些种情况下 Outlook 可能使用多个 MAPI 属性存储为一个特定的用途的信息,或者 Outlook 可能会存储在 $ 属性中的多个信息片段。在这两种方案中经常解释了如何实现这些属性,或它们的功能没有文档。

以编程方式更改基础的属性包括一些风险。主要领域包括:
  • outlook 可能遇到意外的行为或某些属性发生更改时停止响应。
  • 当 Outlook 正在运行时动态更改某些 Outlook 属性使用各种 api 时,可能会出现问题。
  • 不同版本的 Outlook 可能会连接到相同的 MAPI 存储。因此,那里可能会被添加的复杂性,因为与相关属性进行交互的不同版本的 Outlook 可能以不同的方式。
因此,许多使用 Outlook 的 MAPI 属性未记录在 MAPI 级别。使用 MAPI 架构很复杂,可能会更改与更高版本的 MAPI。

因此,我们建议您不要直接访问此低级别的数据,并使用高级 API 而,例如 Outlook 对象库。由于这些的因素的 Microsoft 通常不支持解释如何或为什么实现的基础的属性。

它也是重要区分读取属性和写入属性。支持以编程方式通过使用 Microsoft Office Outlook 2007 对象模型中的 api,如扩展 MAPI、 WebDAV 或 PropertyAccessor 对象读取 MAPI 属性。但是,写入这些属性并不受支持的可能会由于数据损坏问题或其他问题的其他 MAPI 客户端可能已使用修改后的数据时。

命名属性的特定于 MAPI 的信息

MAPI 提供了一种功能以指定给特定属性的名称、 将这些名称映射到唯一的标识符和进行此映射持久。outlook 将多个特定于 Outlook 的字段写入到这些命名 8000 FFFE 范围中使用标识符的属性。通常,Microsoft Outlook 对象模型是更改这些命名属性的唯一受支持的方法。通常,不支持通过使用 MAPI 或通过使用协作数据对象 (CDO) 来更改这些属性。

命名的属性标识由名称和一个 GUID 的属性集。名称可以是数值还是字符串。通过使用 IMAPIProp::GetIDsFromNames 函数和 IMAPIProp::GetNamesFromIDs 函数来处理这些属性。传递到 GetIDsFromNames 函数以获取属性标识为当前的 MAPI 会话有效的 GUID 和名称。由于此属性 ID 可以不同计算机,访问的已命名的属性仅一致的方式是了解其属性集和它的名称。

通常情况下,命名的属性可用作通过 Outlook 客户端才使用该客户端的邮件中添加额外的信息的方法。 因此,未记录的大多数所使用的 Outlook 客户端已命名属性。唯一受支持的方法获取这些属性是通过 Outlook 对象模型。

公共命名所使用的 Outlook 属性

下表描述了公共名为所使用的 Outlook 属性。
收起该表格展开该表格
项类型 (消息类别)可支持性的摘要
消息 (IPM.Note)邮件是 MAPI 的本机。 outlook 不会维护这些项目上的某些命名的属性。
联系人项目 (IPM.Contact)联系人不是本机 MAPI。因为联系人类似于通讯簿条目,某些地址条目标记是有效的。大多数的联系人属性的命名属性。
任务项 (IPM.Task)任务不是本机 MAPI。 大多数任务属性的命名属性。
约会项目 (IPM.Appointment)约会不是本机 MAPI,而是本机到 CDO。大多数约会属性的命名属性。某些约会属性通过 CDO 约会项目 对象公开。
日记项目 (IPM.Activity)日志不是本机 MAPI。大多数日志属性的命名属性。
注意项目 (IPM.StickyNote)粘滞便笺不是本机 MAPI。大多数粘滞便笺属性的命名属性。
除了是本机 MAPI 属性,通过 MAPI、 通过 CDO、 通过 WebDAV,以及通过 Outlook 对象模型支持自定义 Outlook 窗体上的用户定义的字段。这些字段使用 PS_PUBLIC_STRINGS 与属性的属性设置为属性名称的标识符,该字段的名称。 有关可支持性方案基于 WebDAV 的数据和基于 MAPI 的数据的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
920134若要访问 Exchange 2000 Server 或 Exchange Server 2003 中使用 WebDAV 协议的应用程序可用的支持
Outlook 集成 API 还提供了其他文档将与 Outlook 集成在特定的方案。若要访问此文档,请访问下面的 Microsoft 网站:
http://msdn2.microsoft.com/en-us/library/aa193231(office.11).aspx
此外,以下信息介绍了 Outlook 2007 和计划在以后会包含在 Outlook 集成 API。 有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
919198在 Outlook 2007 中的存储提供程序的基于通知的索引支持
919199如何验证是否被视为附件被阻止在 Outlook 中使用 IAttachmentSecurity API
有关详细的信息,请访问以下 Microsoft 网站:
outlook 2007 文档-阻止的附件
http://blogs.msdn.com/stephen_griffin/archive/2006/05/09/593585.aspx

outlook 2007 文档-通知基于索引支持
http://blogs.msdn.com/stephen_griffin/archive/2006/05/10/594641.aspx

Microsoft Office Outlook 2003 Service Pack 1 (SP1) 或更高版本

有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
912239如何 dispidHeaderItem MAPI 属性用于标识您在 Outlook 2003 中收到的邮件的状态
912238如何使用 MAPI 管理邮件的.pst 文件中,当您使用 Outlook 2003 从 IMAP 服务器中下载邮件时
912237如何使用已命名的属性与电子邮件、 电子邮件地址和在 Outlook 2003 中的图片附件的联系人通讯簿条目
915314大约两新命名的属性定义,从而控制当用户答复邮件时,Office Outlook 2003 的处理一条消息是如何的信息
有关详细的信息,请访问以下 Microsoft 网站:
新的 Outlook 文档 5-一次性窗体部件
http://blogs.msdn.com/stephen_griffin/archive/2005/12/29/507991.aspx

outlook 2003 集成 API 包装 PST 文档和示例
http://blogs.msdn.com/stephen_griffin/archive/2005/09/28/Outlook-2003-Integration-API-Wrapped-PST-Docs-and-Sample.aspx

在托管代码中受支持的 api

MAPI 是最初设计和最初开发年代后期。因此,MAPI 之前 Microsoft.net 框架中的托管的代码。 我们并不提供对于 MAPI 的托管的包装,我们可以阻止您使用第三方包装。这是因为解决方案可能看起来在测试的环境中工作,但是当应用程序部署在生产环境中,并且公开给真实的可扩展性方案时,可能会出现内存管理相关的问题。

下表总结 Outlook api 在.net 环境中支持策略。
收起该表格展开该表格
APIDLL 名称托管代码的支持策略
outlook 对象模型不适用通过使用 COM 互操作程序集支持
协作数据对象 (CDO) 1.2 xCdo.dll不支持
MAPI (扩展 MAPI 或简单 MAPI)Mapi32.dll 或 Msmapi32.dll不支持
Exchange Server 2007 Web 服务不适用支持
WebDAV (Exchange 2000 Server 和在 Exchange Server 2007 中已过时的 Exchange Server 2003)不适用支持
对于托管代码中的其他邮件服务 api 支持策略的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
813349.NET 框架应用程序与 Microsoft Exchange api 的支持策略

.NET 框架用户控件

在 Outlook 2003 中不支持.net 用户控件,在早期版本的 Outlook,或在 Outlook 2007 的自定义窗体区域中。 有关对这些控件支持的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
897863在非托管应用程序中控制 Winforms 的支持能力的说明

自定义窗体和 HTTP 方案为 Outlook 2003 和早期版本的 Outlook

在 Outlook,自定义 Outlook 窗体不支持与基于 HTTP 邮件服务 (如 Microsoft Hotmail 一起使用。outlook 不会阻止您使用自定义窗体功能,如果您使用的一个基于 HTTP 邮件服务。但是,某些功能不能正常工作。由于基于 HTTP 的邮件存储在服务器上的只读状态,该功能无法正常工作。因此,我们建议,如果您使用的一个基于 HTTP 邮件服务不会使用自定义 Outlook 窗体。

Microsoft Visual Basic 6.0 MAPI 控件

Visual Basic 6.0 MAPI 控件基于简单 MAPI 和不能再通过测试或支持 Outlook 2007 中启动。我们鼓励您的电子邮件解决方案使用较新的 API。

注意标准支持 Visual Basic 6.0 中已过期。

常用消息调用

常用消息调用 (CMC) 不支持该版本的 Outlook 电子邮件安全更新在 2000 年六月后。

动态数据交换 (DDE)

与其他的 Office 应用程序不同 Outlook 不会作为一种以编程方式与 Outlook 进行通信的方式支持动态数据交换 (DDE)。

Microsoft Outlook Express (Microsoft Windows XP)

对于较长的时间为 Outlook Express 唯一受支持的 API 是简单 MAPI。简单 MAPI 是一组的功能和相关的数据结构,使您能够将消息传递功能添加到自定义应用程序。这些简单 MAPI 函数是 C,c + +,和 Visual Basic 版本中可用的。

Microsoft Exchange SDK 中提供了简单 MAPI 的文档。若要访问此文档,请访问下面的 Microsoft 网站:
http://msdn.microsoft.com/en-us/library/aa142548(EXCHG.65).aspx
outlook Express 使用 Windows 通讯簿 (WAB)。有关 Windows 通讯簿的详细信息,请访问下面的 Microsoft 网站:
http://msdn.microsoft.com/en-us/library/ms629361.aspx

在 Windows Vista 中的 Windows Mail

在 Windows Vista Windows Mail 是更换的 outlook Express。开发人员文档请访问下面的 Microsoft 网站:
http://msdn.microsoft.com/en-us/library/ms709546.aspx
可用的 Outlook Express 6.0 api 还包括在本文档中。

Windows 实时 api 和 sdk

有关与电子邮件相关的 api 以及为 Windows Live 支持选项的详细信息,请访问下面的 Microsoft 网站:
http://dev.live.com/
Microsoft 客户支持当前不提供对这些 api 的支持。

参考

有关命名属性的详细信息,请访问下面的 Microsoft 网站:
http://msdn2.microsoft.com/en-us/library/ms529055.aspx

属性

文章编号: 266353 - 最后修改: 2007年3月30日 - 修订: 5.5
这篇文章中的信息适用于:
  • Microsoft Messaging Application Programming Interface
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 标准版
  • Microsoft Outlook 2000
  • Microsoft Outlook 98 标准版
  • Microsoft Outlook 97 标准版
  • Microsoft Collaboration Data Objects 1.21
  • Microsoft Outlook Express 5.0
  • Microsoft Outlook Express 5.5
  • Microsoft Outlook Express 6.0
关键字:?
kbmt kbinfo kbmsg kboutlookobj KB266353 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 266353
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com