好吧,我在这里需要一些帮助。我使用Outlook 2007 PIA(Outlook加载项)并使用高级搜索。我试图为AppointmentItem属性GlobalAppointmentID编写DASL过滤器,但我似乎找不到要在过滤器中使用的正确名称空间。
我已经尝试了urn:schemas:calendar:uid,在搜索默认日历列表中的第一个约会时,我没有得到任何结果。 MSDN文档声明这是一个mapi属性,但我不熟悉mapi,所以目前我不知道如何在msdn中找到它(我试过并最终在我头上)。
我知道有一个工作要转到默认文件夹并遍历集合以找到我需要的对象,但我认为效率太低(我现在正在使用它但想要改进它)。
任何帮助将不胜感激!
答案 0 :(得分:0)
并非每个属性都可用于Items.Restrict
,Table.Restrict
或Application.AdvancedSearch
方法的过滤字符串。对于Jet和DASL查询,您不能限制二进制属性,例如EntryID
或GlobalAppointmentID
。您也不能限制或搜索计算属性。
无论如何,您可能会发现Chapter 11: Searching Outlook Data很有帮助。
答案 1 :(得分:0)
OOM不允许您在GlobalAppointmentId
/ FindNext / PT_BINARY
中搜索Items.Find
(或任何其他Restrict
属性)。唯一的解决方法是循环遍历Calendar文件夹中的所有项目(效率极低)或使用扩展MAPI(仅限C ++或Delphi)或Redemption(任何语言,RDOFolder
版本进行搜索。{{ 3}}。Find
允许搜索GlobalAppointmentId
或任何其他二元属性