Outlook 加载项:如何响应 AppointmentItems 的更改?

Outlook Add-In: How can I respond to changes to AppointmentItems?

我想编写一个响应日历中事件的加载项 - 当 AppointmentItems 获取 added/moved/deleted、开始时间更改等时。我知道我可以获得当前选择的通过 Application.ActiveExplorer().Selection 的项目并可以遍历它们,但是我如何 attach/detach 事件到这些项目而不会到处泄漏内存?一旦选择发生变化,我就失去了对之前选择的项目的引用,不是吗?

顺便说一句,如果合适的话,我想为此使用 Reactive Extensions(我不知道它是否合适)。似乎我应该能够创建一个 Observable.FromEventPattern(...) 来将项目中的事件流聚合成一个序列,但是再次......我对从哪里开始感到困惑。

使用 Items.ItemAdd/ItemChange/ItemRemove 个事件。可以检索项目集合 MAPIFolder.Items 属性。