1

考虑以下场景:Sombody 与我共享了一个日历。我可以完全访问此日历。当我删除日历中的项目时,Folder.BeforeItemMove会触发事件。到现在为止还挺好。我想通过检查 MoveTo 条目 idnullApplication.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDeletedItems)哪个有效的条目 id 来跟踪删除。现在回到项目位于共享文件夹中的情况:

  • 根据文档,属性olFolderDeletedItems不能作为 GetSharedDefaultFolders() 的参数(只是为了确保我访问了其他允许工作的文件夹)
  • 我试图迭代 Stores 集合。那里没有日历
  • 我试图访问 MoveTo 文件夹上的 Store 属性 ->null
  • 我试图从会话中获取商店(检查 PR_IPM_WASTEBASKET_ENTRYID)-> 失败
  • 我可以获取文件夹名称 问题在于,它可能被重命名和/或本地化,如果我不能帮助它,我不想要一个包含所有已删除文件夹名称的数组
  • 我使用普通 OOM 或兑换文件夹界面测试了所有这些

有任何想法吗?

(在 Outlook 2016 中测试)

4

2 回答 2

0

RDOStore.GetDefaultFolder(olFolderDeletedItems)两者RDOSession.GetSharedDefaultFolder(olFolderDeletedItems)都在救赎中工作。

于 2016-06-18T16:24:56.537 回答
0

如果您可以将日历作为共享日历访问(例如,通过 OWA 作为电子邮件邀请发送给您)已删除项目转到您的已删除项目文件夹。这你可以通过 Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDeletedItems)

如果日历在您个人资料中的第二个邮箱中,则已删除项目将转到该帐户的已删除项目文件夹,您可以通过该文件夹访问

Outlook.Store _Store = MoveTo.Store;

Outlook.Folder _Folder = MoveTo.GetDefaultFolder (OlDefaultFolders.olFolderDeletedItems) as Outlook.Folder;

您可以通过检查是否Folder.Store为空来区分这两种情况(在共享非邮箱日历的情况下)

于 2016-06-27T10:14:16.483 回答