Outlook Interop AdvancedSearch 调用因筛选器失败

Outlook Interop AdvancedSearch call fails with filter

我正在尝试 运行 Outlook.Application class 上的 AdvancedSearch 函数,但我收到一条消息 "The operation has failed." 的异常。我如何才能成功完成此操作?

我之前使用基本搜索功能成功搜索了一个文件夹。我现在需要我的代码来确定搜索是否产生了任何结果。因此我需要高级搜索功能。当我在没有指定过滤器的情况下调用该函数时,outlook 将成功导航到该文件夹​​。当我包含过滤器值时,会引发异常。我没有在这里检查它,但 IsInstantSearchEnabled 属性 是真的。

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)

范围:'\???\收件箱\???'

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

???只是此帖子的替换值。

显然,AdvancedSearch 上的过滤器参数需要省略“@SQL=”部分才能发挥作用,而其他方法则需要它。删除字符串的那部分修复它。