内容表

适用于:Outlook 2013 | Outlook 2016

内容表包含有关 MAPI 容器中对象的信息。 通讯簿提供程序为其每个容器实现内容表,消息存储和远程传输提供程序为其文件夹实现内容表。 通讯簿容器的目录列出了有关其邮件用户和通讯组列表对象的信息,而文件夹的 contents 表列出有关其邮件的信息。 内容表主要由客户端应用程序使用。

有两种类型的文件夹内容表:

  • 标准内容表包含标准消息 - 可以传输的消息,并且这些消息对用户可见。

  • 关联内容表包含客户端为特定目的(例如存储标准消息的备用表示形式)创建的隐藏的不可传输信息。 通过将 MAPI_ASSOCIATED 标志传递给 IMAPIFolder::CreateMessage 调用来创建相关信息。

大多数通讯簿容器和许多文件夹的目录不支持分类排序。

可以通过调用以下内容来访问内容表:

消息存储和通讯簿提供程序必须支持这两种检索表属性的技术。 提供程序只支持访问这些表的一种方式是不可接受的,因为客户端希望有选择。

GetContentsTable 接受多个指定首选项的标志作为输入。 设置后,MAPI_ASSOCIATED标志将检索关联的内容表。 由于某些文件夹不支持关联内容,并且客户端无法提前确定此内容,因此,当请求关联内容表时, GetContentsTable 有时会返回错误MAPI_E_NO_SUPPORT。

MAPI_DEFERRED_ERRORS标志向表的实现者指示,调用期间遇到的任何错误都需要在稍后的时间进行报告。

IMAPIProp::OpenProperty 的调用涉及通过打开内容表的相应属性来访问内容表, PR_CONTAINER_CONTENTS 通讯簿内容表和标准文件夹内容表,以及为关联内容表 PR_FOLDER_ASSOCIATED_CONTENTS 。 虽然不能通过文件夹或容器的 IMAPIProp::GetProps 方法检索这两个或这些属性,但它们包含在 IMAPIProp::GetPropList 方法返回的属性标记数组中。

PR_CONTAINER_CONTENTS 还可用于在复制操作中包含或排除内容表。 如果客户端在复制操作中的 lpExcludeProps 参数中为 IMAPIProp::CopyTo 指定了PR_CONTAINER_CONTENTS,则新文件夹或容器将不支持原始文件夹或容器的内容表。

通讯簿容器和文件夹内容表具有一个较长的必需列列表,这些列在客户端从 GetContentsTableOpenProperty 检索表后有望可用。 如有必要,提供程序可以添加到此所需集,客户端也可以通过 SetColumns 方法请求修改。

每种内容类型表的必需列包括:

必需列 目录的类型
PR_ADDRTYPE (PidTagAddressType)
通讯簿容器表
PR_DISPLAY_NAME (PidTagDisplayName)
通讯簿容器表
PR_DISPLAY_CC (PidTagDisplayCc)
邮件存储文件夹表
PR_DISPLAY_TO (PidTagDisplayTo)
所有文件夹内容表
PR_DISPLAY_TYPE (PidTagDisplayType)
通讯簿容器表
PR_ENTRYID (PidTagEntryId)
所有内容表
PR_HASATTACH (PidTagHasAttachments)
所有文件夹内容表
PR_INSTANCE_KEY (PidTagInstanceKey)
所有内容表
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime)
邮件存储文件夹表
PR_MAPPING_SIGNATURE (PidTagMappingSignature)
邮件存储文件夹表
PR_MESSAGE_CLASS (PidTagMessageClass)
所有文件夹内容表
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
远程传输文件夹表
PR_MESSAGE_FLAGS (PidTagMessageFlags)
所有文件夹内容表
PR_MESSAGE_SIZE (PidTagMessageSize)
所有文件夹内容表
PR_MSG_STATUS (PidTagMessageStatus)
所有文件夹内容表
PR_OBJECT_TYPE (PidTagObjectType)
所有内容表
PR_PARENT_ENTRYID (PidTagParentEntryId)
邮件存储文件夹表
PR_RECORD_KEY (PidTagRecordKey)
通讯簿容器和邮件存储文件夹表
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
远程传输文件夹表
PR_STORE_ENTRYID (PidTagStoreEntryId)
邮件存储文件夹表
PR_STORE_RECORD_KEY (PidTagStoreRecordKey)
邮件存储文件夹表

每行可用的条目标识符可以是短期或长期条目标识符,具体取决于表实现。 短期条目标识符通常用于性能问题的情况。 任一类型的条目标识符都可用于访问相应的对象。

内容表还有一组可选列,但通常由服务提供商在其实现中包括。 这些可选列包括:

可选列 目录的类型
PR_CLIENT_SUBMIT_TIME (PidTagClientSubmitTime)
邮件存储文件夹表
PR_CONTENT_COUNT (PidTagContentCount)
标准文件夹内容表
PR_CONTENT_UNREAD (PidTagContentUnreadCount)
标准文件夹内容表
PR_CONVERSATION_INDEX (PidTagConversationIndex)
邮件存储文件夹表
PR_EMAIL_ADDRESS (PidTagEmailAddress)
通讯簿容器表
PR_IMPORTANCE (PidTagImportance)
所有文件夹内容表
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
所有文件夹内容表
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
所有文件夹内容表
PR_PRIORITY (PidTagPriority)
所有文件夹内容表
PR_SEARCH_KEY (PidTagSearchKey)
通讯簿容器表
PR_SEND_RICH_INFO (PidTagSendRichInfo)
通讯簿容器表
PR_SENDER_NAME (PidTagSenderName)
所有文件夹内容表
PR_SENSITIVITY (PidTagSensitivity)
所有文件夹内容表
PR_SUBJECT (PidTagSubject)
所有文件夹内容表
PR_TRANSMITABLE_DISPLAY_NAME (PidTagTransmittableDisplayName)
通讯簿容器表

消息存储提供程序还必须包含仅针对搜索结果文件夹内容表的 PR_PARENT_DISPLAY (PidTagParentDisplay) 。

仅当文件夹中的所有邮件具有相同的映射签名(即属性名称到属性标识符的相同映射)时,命名属性才能添加到文件夹内容表的列集中。 如果文件夹内容表支持在文件夹中创建任意邮件,则文件夹内容表应支持向列集添加邮件类特定的属性。

客户端可以通过调用文件夹内容表的 IMAPIFolder::SaveContentsSort 方法保存文件夹内容表的默认排序顺序。 如果在调用中指定了RECURSIVE_SORT标志,则可以将排序顺序应用于文件夹中的所有子文件夹。

另请参阅

MAPI 表