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

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

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

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

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

2 ответа

ООМ не позволит вам искать GlobalAppointmentId (или любой другой PT_BINARY собственность) в Items.Find/Найти следующий/Restrict, Единственный обходной путь - это либо пройти по всему элементу в папке "Календарь" (крайне неэффективно), либо выполнить поиск с использованием Extended MAPI (только для C++ или Delphi) или Redemption (любой язык, его версия). RDOFolder, ПредметыFind позволяет искать на GlobalAppointmentId или любое другое двоичное свойство)

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

В любом случае, вам может пригодиться Глава 11: Поиск данных Outlook.

Другие вопросы по тегам