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。

针对实现者的说明

如果支持容器的内容表,则还必须执行以下操作:

远程传输提供程序的此方法实现必须返回一个指向传递到 GetContentsTable 方法的 ppTable 参数中的 IMAPITable : IUnknown 接口的指针。 如果传输提供程序具有现有内容表,则返回指向该表的指针就足够了。 否则,此方法必须创建一个新的 IMAPITable : IUnknown 对象,在表中填充消息头 ((如果有消息标头可用) ),并返回指向新表的指针。 ITableData::HrGetView 方法可用于生成返回值并将表指针存储在 ppTable 参数中。 内容表必须至少支持以下属性列:

给调用方的说明

字符串和二进制内容表列可以截断。 通常,提供程序返回 255 个字符。 由于无法事先知道表是否包含截断的列,因此假设如果列的长度为 255 字节或 510 字节,则列被截断。 如果需要,始终可以直接从 对象检索截断列的完整值,方法是使用对象的入口标识符将其打开,然后调用 IMAPIProp::GetProps 方法。

根据提供程序的实现,限制和排序操作可以应用于所有字符串或该字符串的截断版本。

MFCMAPI 引用

有关 MFCMAPI 示例代码,请参阅下表。

文件 函数 Comment
ContentsTableDialog.cpp
CContentsTableDlg::CContentsTableDlg
CContentsTableDlg 类使用 GetContentsTable 获取内容表中的条目。

另请参阅

IMAPIProp::GetPropList

IMAPIProp::GetProps

IMAPIProp::OpenProperty

IMAPITable : IUnknown

PidTagContainerContents 规范属性

IMAPIContainer : IMAPIProp

MFCMAPI 代码示例