SPropertyRestriction
適用於:Outlook 2013 |Outlook 2016
描述用來比對常數與屬性值的屬性限制。
屬性 | 值 |
---|---|
標頭檔: |
Mapidefs.h |
typedef struct _SPropertyRestriction
{
ULONG relop;
ULONG ulPropTag;
LPSPropValue lpProp;
} SPropertyRestriction;
成員
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 與 ulPropTag 類型 SPropValue 的 lpProp 指標會指出如何解譯 lpProp 等位的成員值。 這兩個屬性類型必須相符,否則當限制用於 呼叫 IMAPITable::Restrict 或 IMAPITable::FindRow 時,會傳回錯誤值MAPI_E_TOO_COMPLEX。
比較順序是 (屬性值) (關係運算子) (常數值) 。
當屬性限制傳遞至 IMAPITable::Restrict 或 IMAPITable::FindRow 且目標屬性不存在時,則不會定義限制的結果。 藉由建立 將 屬性限制與 EXIST 限制聯結的 AND 限制,即可保證呼叫端的正確結果。 使用 SExistRestriction 結構來定義 EXIST 限制和 SAndRestriction 結構來定義 AND 限制。
在 Exchange Server 2019 的特定案例中,在伺服器上執行的比較會呈現一種行為,讓不存在的屬性被視為存在,而且其值小於最小可能的數據類型值。 換句話說,如果 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 結構的詳細資訊,請參閱 關於限制。