SPropertyRestriction

适用于:Outlook 2013 | Outlook 2016

描述用于将常量与属性值匹配的属性限制。

属性
标头文件:
Mapidefs.h
typedef struct _SPropertyRestriction
{
  ULONG relop;
  ULONG ulPropTag;
  LPSPropValue lpProp;
} SPropertyRestriction;

Members

relop

将在搜索中使用的关系运算符。 可能的值如下所示:

  • RELOP_GE:比较基于大于或等于第一个值。

  • RELOP_GT:比较基于较大的第一个值。

  • RELOP_LE:比较基于较小或相等的第一个值。

  • RELOP_LT:比较基于较小的第一个值。

  • RELOP_NE:基于不相等值进行比较。

  • RELOP_RE:比较基于 LIKE (正则表达式) 值。

  • RELOP_EQ:比较基于相等值。

ulPropTag

标识要比较的属性的属性标记。

lpProp

指向 SPropValue 结构的指针,该结构包含将在比较中使用的常量值。

备注

SPropertyRestriction 结构中有两个属性标记。 一个位于 ulPropTag 成员中,另一个位于 lpProp 所指向的 SPropValue 结构的 ulPropTag 成员中 MAPI 需要属性标识符字段和属性类型字段。 SPropertyRestriction 中的 ulPropTag 是要匹配的属性,而 SPropertyRestrictionlpPropTag 指向 sPropValue 类型的 lpPropTag 指针指示如何解释 lpProp 联合的成员值。 这两种属性类型必须匹配,否则在调用 IMAPITable::Restrict 或 IMAPITable::FindRow 时返回错误值MAPI_E_TOO_COMPLEX。

比较顺序是 (属性值) (关系运算符) (常量值)

将属性限制传递给 IMAPITable::RestrictIMAPITable::FindRow 且目标属性不存在时,限制的结果是未定义的。 通过创建将属性限制与 EXIST 限制联接的 AND 限制,可以保证调用方获得准确的结果。 使用 SExistRestriction 结构定义 EXIST 限制,使用 SAndRestriction 结构定义 AND 限制。

在 2019 Exchange Server 的特定情况下,在服务器上执行的比较表现出一种行为,使得不存在的属性被视为存在,并且其值小于可能的最小数据类型值。 换句话说,如果 MAPI 对象缺少例如 PR_SENSITIVITY 属性,并且正在使用结构进行测试 SPropertyRestriction{RELOP_LT, PR_SENSITIVITY, {PR_SENSITIVITY, 0, {.l = INT_MIN}} ,则比较结果为“true”。 (这与上面的“未定义”规范一致。)

如果实现表的服务提供程序支持多值属性标记,则可以在属性限制中使用这些标记。 如果受支持,则可以在可以使用单值属性标记的任何位置使用多值属性标记。

可在以下方法中使用多值属性标记:

重要

当两个属性标记不匹配时,一个值得注意的情况是,如果限制在多值属性上。 在这种情况下,必须满足以下条件。 如果 SPropertyRestrictionulPropTag 的属性类型包含多值属性类型位标志MV_FLAG (0x1000) ,则 SPropValue 的 ulPropTag 的属性类型应与前者匹配,减去MV_FLAG位标志,即其反转。 > 例如,若要限制使用多值自定义字符串属性(例如具有属性0x8012101f属性标记的类别),即 PROP_TAG (MV_FLAG|PT_UNICODE,0x8012) ) ,相应的 SPropertyRestriction 将如下所示。 SPropertyRestriction.ulPropTag = 0x8012101f; // attempt to restrict a MultiValue property SPropertyRestriction.lpProp->ulPropTag = 0x8012001f; // the lpszW member of the Value property is valid > SPropertyRestriction.lpProp.Value->lpszW = L"My Category"; >请注意,如果 SPropValueulPropTag 的属性类型包含MV_FLAG位标志,则可能返回MAPI_E_TOO_COMPLEX。

有关 SPropertyRestriction 结构的详细信息,请参阅 关于限制

另请参阅