Расширенный поиск Outlook по свойству GlobalAppointmentID

Хорошо, мне здесь нужна помощь. Я работаю с Outlook 2007 PIA (надстройка Outlook) и использую расширенный поиск. Я пытаюсь написать фильтр DASL для свойства AppointmentItem GlobalAppointmentID, но не могу найти правильное пространство имен для использования в фильтре.

Я пробовал urn: schemas: calendar: uid, и я не получаю никаких результатов при поиске первой встречи в списке календарей по умолчанию. В документации MSDN указано, что это свойство mapi, но я не знаком с mapi, поэтому на данный момент я не знаю, как найти его в msdn таким образом (я пробовал и в итоге оказался выше моей головы).

Я знаю, что есть работа, чтобы перейти к папке по умолчанию и перебрать коллекцию, чтобы найти объект, который мне нужен, но я считаю это слишком неэффективным (я использую его в данный момент, но хочу его улучшить).

Любая помощь будет оценена по достоинству!


person Adam    schedule 15.06.2017    source источник


Ответы (2)


OOM не позволит вам искать GlobalAppointmentId (или любое другое свойство PT_BINARY) в Items.Find / FindNext / Restrict. Единственный обходной путь - либо перебрать все элементы в папке Calendar (крайне неэффективно), либо выполнить поиск с использованием расширенного MAPI (только C ++ или Delphi) или Погашение (любой язык, его версия RDOFolder. Элементы ._ 6_ позволяет искать GlobalAppointmentId или любое другое двоичное свойство)

person Dmitry Streblechenko    schedule 18.06.2017

Не каждое свойство можно использовать в строке фильтра для методов Items.Restrict, Table.Restrict или Application.AdvancedSearch. И для запросов Jet, и для запросов DASL нельзя ограничивать двоичное свойство, такое как EntryID или GlobalAppointmentID. Также вы не можете ограничивать или искать вычисляемые свойства.

В любом случае вы можете найти Глава 11: Поиск в данных Outlook.

person Eugene Astafiev    schedule 16.06.2017