IMAPIContainer::GetHierarchyTable

适用于:Outlook 2013 | Outlook 2016

返回指向容器层次结构表的指针。

HRESULT GetHierarchyTable(
  ULONG ulFlags,
  LPMAPITABLE FAR * lppTable
);

参数

ulFlags

[in]控制如何在表中返回信息的标志的位掩码。 可以设置以下标志:

CONVENIENT_DEPTH

使用多个级别的容器填充层次结构表。 如果未设置CONVENIENT_DEPTH,则层次结构表仅包含容器的直接子容器。

MAPI_DEFERRED_ERRORS

GetHierarchyTable 可以成功返回,可能是在表提供给调用方之前。 如果该表不可用,则进行后续表调用可能会引发错误。

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::GetHierarchyTable 方法返回指向容器层次结构表的指针。 层次结构表保存有关容器中子容器的摘要信息。 文件夹层次结构表保存有关子文件夹的信息;通讯簿层次结构表保存有关子通讯簿容器和通讯组列表的信息。

某些容器可能没有子容器。 这些容器从 GetHierarchyTable 的实现中返回MAPI_E_NO_SUPPORT。

设置CONVENIENT_DEPTH标志后,层次结构表中的每一行还包括 PR_DEPTH (PidTagDepth) 属性作为列。 PR_DEPTH 指示每个容器相对于实现表的容器的级别。 实现容器的直接子容器的深度为 0,零深度容器中的子容器位于深度 1 处,依此类。 随着级别的层次结构的加深, PR_DEPTH 的值按顺序增加。

有关层次结构表中必需列和可选列的完整列表,请参阅 层次结构表

针对实现者的说明

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

给调用方的说明

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

根据提供程序的实现,限制和排序操作可以应用于整个字符串或该字符串的截断版本。 此外,不保证存储提供程序遵循为层次结构表指定的排序顺序集 SSortOrderSet

MFCMAPI 引用

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

文件 函数 Comment
HierarchyTableTreeCtrl.cpp
CHierarchyTableTreeCtrl::GetHierarchyTable
CHierarchyTableTreeCtrl 类使用 GetHierarchyTable 获取要显示在树视图控件中的层次结构表。

另请参阅

IMAPIProp::GetPropList

IMAPIProp::GetProps

IMAPITable : IUnknown

PidTagContainerHierarchy 规范属性

IMAPIContainer : IMAPIProp

MFCMAPI 代码示例