在我的 Outlook 加载项中,我试图获取有关用户拖放到 MAPI 商店中的所有项目的信息(我正在使用 Redemption 库)。
我对此的第一次尝试是挂钩 MessageCreated 事件......
myRDOStore.OnMessageCreated += new IRDOStoreEvents_OnMessageCreatedEventHandler(myRDOStore_OnMessageCreated);
棘手的部分是我需要捕获与一个集合同时拖放的所有项目,我猜这意味着保留每条新消息的某些方面(可能是 EntryId)。
现在,问题显然是我无法将一堆任意事件的结果捆绑在一起,所以我正在研究ActiveExplorer().Selection
集合并试图想办法确定哪些项目已被拖放到我的存储中.
我没有太多运气,因为集合的内容似乎有点随意(例如,当拖动 1 个项目时,Selection
当我在事件处理程序中检查它时,会有两个项目,或者当一系列事件在那里触发时例如,选择中的 2 个项目,下一个事件中的 1 个,下一个事件中的 1 个等)。
除此之外,我的一个用例是能够从 Outlook 外部拖动项目,我猜它不会包含在Selection
集合中。
有没有解决这个问题的标准方法?这似乎是一件很常见的事情——将一堆文件拖到一个文件夹中,并能够作为一个集合获取关于它们的一些信息,但我就是想不通。非常感谢任何指导。