保存的Outlook MailItem还没有EntryId

时间:2017-02-02 21:57:31

标签: c# outlook vsto outlook-addin

这很奇怪。

我有一个从Outlook外部打开的已保存的Outlook MailItem(.msg文件),由于某种原因,它还没有设置其EntryID:

OutlookSpy doesn't even know it

某些背景信息:

  • 此MailItem是从Windows资源管理器打开的已保存的.msg文件,而不是从Outlook。
  • 在我的代码中,我最初从附件开始,然后将MailItem作为其父级。

如果我在调试时检查MailItem,则EntryID为null或空字符串......

Empty EntryID during debugging

...但是,如果(例如)我展开m_ObjectToDataMap,直到我到达_rcw并展开那个对象的Dynamic View - 那个是在EntryID被设置的时候。

好像MailItem尚未完全加载,并且调试器中某些值的检查以某种方式完成了MailItem的初始化。

我试过了:

  • 使用System.Threading.Thread.Sleep()等待几秒钟。
  • parent.Save()即使我知道这不是一个新组成的MailItem。
  • 刷新活动检查器。
  • 尝试通过其他方法获取MailItem,而不是将其从附件中删除。

这些都没有解决问题。为什么会这样?我该如何解决或解决这个问题?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

独立MSG文件没有条目ID。这是可以预料的。