2017-06-15 56 views
0

好的,所以我需要一些帮助。我使用Outlook 2007 PIA(Outlook加载项)并使用高级搜索。我正在尝试为AppointmentItem属性GlobalAppointmentID编写一个DASL筛选器,但似乎无法找到在筛选器中使用的正确名称空间。Outlook上的高级搜索GlobalAppointmentID

我试过urn:schemas:calendar:uid,并且在默认日历列表中的第一个约会中搜索时没有得到任何结果。 MSDN文档指出,这是一个mapi属性,但我对mapi不熟悉,所以目前我不知道如何甚至在msdn中找到它(我试过并最终结束了我的头)。

我知道有一个解决方案去默认文件夹并遍历集合来找到我需要的对象,但我认为效率太低(我现在正在使用它,但想改进它) 。

任何帮助,将不胜感激!

回答

0

并非每个属性都可用于Items.RestrictTable.RestrictApplication.AdvancedSearch方法的过滤器字符串中。对于Jet和DASL查询,您不能限制二进制属性,如EntryIDGlobalAppointmentID。您也无法限制或搜索计算属性。

无论如何,你可能会发现Chapter 11: Searching Outlook Data有帮助。

0

OOM不会让您在Items.Find/FindNext/Restrict中搜索GlobalAppointmentId(或任何其他PT_BINARY属性)。唯一的解决方法是循环浏览日历文件夹中的所有项目(效率非常低)或使用扩展MAPI(仅限C++或Delphi)或Redemption(任何语言,它的版本RDOFolderItemsFind允许搜索GlobalAppointmentId或任何其他二元属性)