c# - 通过 UserProperties 搜索 outlook 项目

标签 c# outlook-addin

我必须将我的数据库 pkid 保存到 outlook。我使用了 UserProperties["TaskId"]。我试图通过这个 id 找到该项目,但下面的代码不起作用

tasksFolder.Items.Find(string.Format("[TaskId] = '{0}'", id))

有没有办法找到我的项目,而不是在我所有的列表中循环? 有没有更好的办法在outlook上保存Database id,EntryID是只读的。

最佳答案

您可以利用在后台运行的 AdvancedSearch

准确地说,您可以使用 Application.AdvancedSearch 启动异步搜索任务(参见 documentation here)

string scope 参数实际上是执行搜索的 Outlook 文件夹。我认为您可能会使用默认任务文件夹(请参阅 olDefaultFolder )

在您的情况下,您必须使用 CustomField 创建查询。这是语法(未测试)。这个奇怪的 0x0000001f 实际上是 CustomProperties 的内部 ID,see

"http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/TaskId/0x0000001f = 'yourid'"

请注意,使用 AdvancedSearch,您可以在后台执行搜索任务,而不会卡住 UI 线程。我建议您使用 ID 来标识您的搜索,这样您就不会搞乱并发搜索或取消。

关于c# - 通过 UserProperties 搜索 outlook 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36134056/

相关文章:

C# 单元测试 : iterating through expected results list

c# - 在 c# 中记录击键时键入特殊字符时显示双字符

c# - 如何在 C# 中通过代码在文本框中向下滚动

VbaProject.OTM部署

c#-4.0 - 覆盖 Outlook 的默认发送功能

c# - 确定 List.IndexOf 忽略大小写

c# - 在 InvocatioExpression 中插入新方法调用

c# - outlook 2010 addin c#:::自定义表单在客户端计算机上不起作用

excel - 有人有解决方法来解决使用 Outlook 插件保存和发送的错误吗?

outlook - 功能区无效不起作用