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 是要匹配的属性,而 SPropertyRestriction 的 lpPropTag 指向 sPropValue 类型的 lpPropTag 指针指示如何解释 lpProp 联合的成员值。 这两种属性类型必须匹配,否则在调用 IMAPITable::Restrict 或 IMAPITable::FindRow 时返回错误值MAPI_E_TOO_COMPLEX。
比较顺序是 (属性值) (关系运算符) (常量值) 。
将属性限制传递给 IMAPITable::Restrict 或 IMAPITable::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”。 (这与上面的“未定义”规范一致。)
如果实现表的服务提供程序支持多值属性标记,则可以在属性限制中使用这些标记。 如果受支持,则可以在可以使用单值属性标记的任何位置使用多值属性标记。
可在以下方法中使用多值属性标记:
重要
当两个属性标记不匹配时,一个值得注意的情况是,如果限制在多值属性上。 在这种情况下,必须满足以下条件。
如果 SPropertyRestriction 的 ulPropTag 的属性类型包含多值属性类型位标志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";
>请注意,如果 SPropValue 的 ulPropTag 的属性类型包含MV_FLAG位标志,则可能返回MAPI_E_TOO_COMPLEX。
有关 SPropertyRestriction 结构的详细信息,请参阅 关于限制。