使用多值列

适用于:Outlook 2013 | Outlook 2016

多值列包含多值属性的数据,多值属性是具有基类型的值数组而不是单个值的属性。 由于没有一个表在其默认列集中包含多值属性,因此仅当表的用户请求多值属性时才包含在表中。

可在表中显示多值列:

  • 在单个行中,所有属性值都显示在单个列实例中。 这是默认选项。

    • 或-
  • 在一系列行中,每个属性值都有一行。 每个唯一值出现在其自己的行中的列中,其行数与多值属性中的值相同。 对于 pidTagInstanceKey) (属性PR_INSTANCE_KEY,每行都具有唯一值,但其他列的值相同。 如果一行包含多个具有多个值的列,例如,两个分别具有 MN 值的列,则表中将显示该行的 M*N 实例。

表用户通过调用 IMAPITable::SetColumns 方法请求显示的非默认类型,并在多值列的属性类型中设置了 MVI_FLAG 标志。 MVI_FLAG标志是定义为将MV_FLAG和MV_INSTANCE标志与逻辑 OR 操作组合的结果的常量。 除了在 SetColumns 中使用外,MVI_FLAG还可以传递到 lpSortCriteria 参数中的 IMAPITable::SortTablelpRestriction 参数的 ulPropTag 成员中的 IMAPITable::Restrict。 传递MVI_FLAG时, SortTable 的执行方式与 SetColumns 类似,为多值列中的每个值添加一行,并针对实例中的单个值进行排序。 为每个值添加一行。

但是,Restrict 不会将多值列扩展到其他计算行。 具有MVI_FLAG集的多值列指示服务提供商在限制表时使用该列。 如果限制中有一个属性值,则它必须是与 列的 IMAPITable::QueryRows 返回的相同单值属性标记。

表实现程序仅需要支持默认的显示类型,并且当调用方请求其他替代项时,表实现程序可以返回MAPI_E_TOO_COMPLEX值。 对于实现文件夹内容表的邮件存储提供程序来说,支持这两种类型的显示功能至关重要。

另请参阅

MAPI 表