Outlook 高级搜索属性 GlobalAppointmentID
Posted
技术标签:
【中文标题】Outlook 高级搜索属性 GlobalAppointmentID【英文标题】:Outlook Advanced Search on property GlobalAppointmentID 【发布时间】:2017-11-18 11:19:47 【问题描述】:好的,所以我需要一些帮助。我使用 Outlook 2007 PIA(Outlook 插件)并使用高级搜索。我正在尝试为 AppointmentItem 属性 GlobalAppointmentID 编写一个 DASL 过滤器,但我似乎找不到要在过滤器中使用的正确命名空间。
我尝试了 urn:schemas:calendar:uid,但在默认日历列表中搜索第一个约会时没有得到任何结果。 MSDN 文档指出这是一个 mapi 属性,但我不熟悉 mapi,所以目前我什至不知道如何在 msdn 中以这种方式找到它(我尝试过,但最终不知所措)。
我知道有一种解决方法可以转到默认文件夹并遍历集合以找到我需要的对象,但我认为效率太低(我目前正在使用它但想改进它)。
任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:OOM 不允许您在 Items.Find
/FindNext/Restrict
中搜索 GlobalAppointmentId
(或任何其他 PT_BINARY
属性)。唯一的解决方法是遍历日历文件夹中的所有项目(效率极低)或使用扩展 MAPI(仅限 C++ 或 Delphi)或 Redemption(任何语言,其版本为 RDOFolder
.Items.@987654328 @ 允许搜索 GlobalAppointmentId
或任何其他二进制属性)
【讨论】:
【参考方案2】:并非每个属性都可以在Items.Restrict
、Table.Restrict
或Application.AdvancedSearch
方法的过滤器字符串中使用。对于 Jet 和 DASL 查询,您不能限制二进制属性,例如 EntryID
或 GlobalAppointmentID
。您也不能限制或搜索计算属性。
无论如何,您可能会发现Chapter 11: Searching Outlook Data 很有帮助。
【讨论】:
以上是关于Outlook 高级搜索属性 GlobalAppointmentID的主要内容,如果未能解决你的问题,请参考以下文章