Outlook Interop AdvancedSearch调用失败,并带有过滤器

时间:2019-04-11 21:03:07

标签: outlook interop advanced-search

我正在尝试在Outlook.Application类上运行AdvancedSearch函数,但是我收到消息“操作失败”的异常。如何使它成功完成?

我以前曾成功使用基本搜索功能来搜索文件夹。现在,我需要我的代码来识别搜索是否产生了任何结果。因此,我需要高级搜索功能。当我调用未指定过滤器的函数时,Outlook将成功导航到该文件夹​​。当我包含过滤器值时,会引发异常。我不在这里检查它,但是IsInstantSearchEnabled属性为true。

Dim scope = $"'{searchFolder.FolderPath}'"
Dim searchAttachment = "https://schemas.microsoft.com/mapi/proptag/0x0EA5001E"
Dim filter = $"@SQL={Chr(34)}{searchAttachment}{Chr(34)} ci_phrasematch '{searchText}'"
Dim search = app.AdvancedSearch(scope, filter)

范围:“ \ ??? \ Inbox \ ???”

过滤器:@ SQL =“ https://schemas.microsoft.com/mapi/proptag/0x0EA5001E” ci_phrasematch'???'

???只是此发布的替换值。

1 个答案:

答案 0 :(得分:0)

显然,AdvancedSearch上的filter参数需要省略'@ SQL ='部分才能起作用,而其他方法则需要。删除该字符串的那一部分即可修复它。