Погашение с использованием фильтра в настраиваемом поле даты и времени в контактах - PullRequest
0 голосов
/ 28 апреля 2010

У меня проблема с использованием фильтра в пользовательскую дату в контактах.

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), я получаю правильные контакты, но когда яразверните фильтр в поле даты и времени, контакты не будут возвращены.

Спасибо,

Spitje

1 Ответ

0 голосов
/ 29 апреля 2010

Если у указанного свойства MAPI есть строка в качестве anid (в отличие от целого числа), невозможно указать тип свойства в имени DASL, поэтому для погашения предполагается строка.

Если свойство было добавлено в поля папки, определение свойства будет сохранено в скрытом сообщении в этой папке, и вы можете использовать только имя свойства (CustomFieldDate) В противном случае вы можете вызвать GetIdsFromNames, чтобы выяснить тег свойства "или" с соответствующим типом (PT_SYSTIME), а затем создать имя DASL, которое выглядит как обычное (неименованное) свойство MAPI:

например. http://schemas.microsoft.com/mapi/proptag/0x80650040

Дмитрий Стребленченко (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
и MAPI Developer Tool

...