IMAPIContainer::GetContentsTable
适用于:Outlook 2013 | Outlook 2016
返回指向容器的内容表的指针。
HRESULT GetContentsTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
参数
ulFlags
[in]控制如何返回内容表的标志的位掩码。 可以设置以下标志:
MAPI_ASSOCIATED
应返回容器的关联内容表,而不是标准内容表。 此标志仅用于文件夹。 在调用 IMAPIFolder::CreateMessage 方法时,使用MAPI_ASSOCIATED标志创建关联的内容表中包含的消息。 客户端通常使用关联的内容表来检索表单、视图和其他隐藏消息。
ACLTABLE_FREEBUSY
允许访问 PR_MEMBER_RIGHTS 中的 frightsFreeBusySimple 和 frightsFreeBusyDetailed 权限。
MAPI_DEFERRED_ERRORS
GetContentsTable 可以成功返回,可能是在表提供给调用方之前。 如果该表不可用,则进行后续表调用可能会引发错误。
MAPI_UNICODE
请求以 Unicode 格式返回包含字符串数据的列。 如果未设置MAPI_UNICODE标志,则应以 ANSI 格式返回字符串。
SHOW_SOFT_DELETES
显示当前标记为软删除的项目,即它们处于已删除项保留时间阶段。
lppTable
[out]指向内容表的指针的指针。
返回值
S_OK
已成功检索内容表。
MAPI_E_BAD_CHARWIDTH
已设置MAPI_UNICODE标志且实现不支持 Unicode,或者未设置MAPI_UNICODE且实现仅支持 Unicode。
MAPI_E_NO_SUPPORT
容器没有内容,不能提供内容表。
备注
IMAPIContainer::GetContentsTable 方法返回指向容器的 contents 表的指针。 内容表包含有关容器中对象的摘要信息。
内容表具有较长的列集。 有关内容表中必需列和可选列的完整列表,请参阅 内容表。
某些容器可能没有内容。 这些容器从 GetContentsTable 的实现中返回MAPI_E_NO_SUPPORT。
针对实现者的说明
如果支持容器的内容表,则还必须执行以下操作:
支持调用容器的 IMAPIProp::OpenProperty 方法以打开 PR_CONTAINER_CONTENTS (PidTagContainerContents) 属性。
返回 PR_CONTAINER_CONTENTS 以响应对容器的 调用
远程传输提供程序的此方法实现必须返回一个指向传递到 GetContentsTable 方法的 ppTable 参数中的 IMAPITable : IUnknown 接口的指针。 如果传输提供程序具有现有内容表,则返回指向该表的指针就足够了。 否则,此方法必须创建一个新的 IMAPITable : IUnknown 对象,在表中填充消息头 ((如果有消息标头可用) ),并返回指向新表的指针。 ITableData::HrGetView 方法可用于生成返回值并将表指针存储在 ppTable 参数中。 内容表必须至少支持以下属性列:
PR_ENTRYID (PidTagEntryID)
PR_SENDER_NAME (PidTagSenderName)
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
PR_DISPLAY_TO (PidTagDisplayTo)
PR_SUBJECT (PidTagSubject)
PR_MESSAGE_CLASS (PidTagMessageClass)
PR_MESSAGE_FLAGS (PidTagMessageFlags)
PR_MESSAGE_SIZE (PidTagMessageSize)
PR_PRIORITY (PidTagPriority)
PR_IMPORTANCE (PidTagImportance)
PR_SENSITIVITY (PidTagSensitivity)
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
PR_MSG_STATUS (PidTagMessageStatus)
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
PR_HASATTACH (PidTagHasAttachments)
PR_OBJECT_TYPE (PidTagObjectType)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
给调用方的说明
字符串和二进制内容表列可以截断。 通常,提供程序返回 255 个字符。 由于无法事先知道表是否包含截断的列,因此假设如果列的长度为 255 字节或 510 字节,则列被截断。 如果需要,始终可以直接从 对象检索截断列的完整值,方法是使用对象的入口标识符将其打开,然后调用 IMAPIProp::GetProps 方法。
根据提供程序的实现,限制和排序操作可以应用于所有字符串或该字符串的截断版本。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
ContentsTableDialog.cpp |
CContentsTableDlg::CContentsTableDlg |
CContentsTableDlg 类使用 GetContentsTable 获取内容表中的条目。 |