在联系人中的自定义日期时间字段上使用过滤器进行的赎回

时间:2010-04-28 14:25:20

标签: filter field outlook-redemption

我在联系人的自定义日期使用过滤器时遇到问题。

RDOItems Contacts = null;
string strSearch = string.Empty;

strSearch = AddQuotes("http://schemas.microsoft.com/mapi/string/{01234567-8901-2345-C678-901234567801}/CustomFieldString");

strSearch += " <> '' ";

strSearch += " AND ";
strSearch +=  AddQuotes("http://schemas.microsoft.com/mapi/string/{01234567-8901-2345-C678-901234567802}/CustomFieldDate");
strSearch += " < ";
strSearch += "'2010-04-28 18:00'";                                 

Contacts = (RDOItems)synContacts.Items.Restrict(strSearch)

当我只使用过滤器的第一部分(CustomFieldString)时,我得到了正确的联系人,但是当我使用datetime字段展开过滤器时,不会返回任何联系人。

谢谢,

Spitje

1 个答案:

答案 0 :(得分:0)

如果指定的MAPI属性具有作为anid的字符串(对应于整数),则无法在DASL名称中指定属性类型,因此Redemption假定为string。

如果属性已添加到文件夹字段中,则属性定义将存储在该文件夹中的隐藏消息中,您只能使用属性名称(CustomFieldDate) 否则,您可以调用GetIdsFromNames来找出属性标记,“或”使用适当的类型(PT_SYSTIME),然后构造看起来像常规(未命名)MAPI属性的DASL名称:

e.g。 http://schemas.microsoft.com/mapi/proptag/ 0x80650040

德米特里·斯特拉奇琴科(MVP)
http://www.dimastr.com/
OutlookSpy - Outlook,CDO
和MAPI开发人员工具