Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将自定义数据与Outlook邮件项目/检查器窗口关联_C#_Vb.net_Backgroundworker_Outlook Addin_Email Attachments - Fatal编程技术网

C# 将自定义数据与Outlook邮件项目/检查器窗口关联

C# 将自定义数据与Outlook邮件项目/检查器窗口关联,c#,vb.net,backgroundworker,outlook-addin,email-attachments,C#,Vb.net,Backgroundworker,Outlook Addin,Email Attachments,我有一个用vb.net编写的Outlook 2010+加载项,当用户向正在编写的电子邮件添加附件时,该加载项会在附件添加事件中触发。我提取此附件的临时位置,然后使用后台工作程序对其进行一些处理(这可能需要1-10秒)。我需要在用户发送电子邮件之前完成此处理,因为当用户点击send时,结果将用于另一段实时运行的代码中 我有一个全局布尔值is_processing,当扫描正在进行时,它会切换为true,当扫描完成事件运行时,它会切换为false。在电子邮件的send事件中,我有一个while循环,在

我有一个用vb.net编写的Outlook 2010+加载项,当用户向正在编写的电子邮件添加附件时,该加载项会在附件添加事件中触发。我提取此附件的临时位置,然后使用后台工作程序对其进行一些处理(这可能需要1-10秒)。我需要在用户发送电子邮件之前完成此处理,因为当用户点击send时,结果将用于另一段实时运行的代码中

我有一个全局布尔值is_processing,当扫描正在进行时,它会切换为true,当扫描完成事件运行时,它会切换为false。在电子邮件的send事件中,我有一个while循环,在继续我的其余代码之前检查这个布尔值是否为false

如何处理同时打开的多个compose窗口以及用户在每个窗口上添加附件

理想情况下,我需要一种将单独的is_处理布尔值与每个组合窗口相关联的方法,以及一种存储每个窗口处理结果的方法,以便我知道哪些附件数据属于哪个电子邮件


一个想法是为每封电子邮件和所有已添加的附件保留一个单独的列表,并在每个附件完成后更改其各自的处理状态。当用户单击发送时,我检查所有附件的组成窗口ID,并且它们的所有状态都是“完整”。

< p>您可以考虑使用用户属性。Outlook项提供返回UserProperties集合的属性,该集合表示Outlook项的所有用户属性。因此,与inspector窗口关联的每个项目都将获得自己的数据集。

您的想法很好。您应该使用一个字典来存储每个邮件ID和处理状态对象。是否有一个特定的ID我应该与mailItem inspector一起使用,它不是唯一的或在某一点上发生变化的可能性有多大?当我实现这个建议的解决方案时,我将发布一些代码。