如何正确地为Office COM加载项实现IDTExtensibility2接口?
问题描述:
我正在实施用于Outlook的COM加载项。我使用IDTExtensibility2。我不确定这是否是执行COM加载项的最佳方式,但我无法更改。如何正确地为Office COM加载项实现IDTExtensibility2接口?
该接口定义了五种方法:OnConnection,OnStartupComplete,OnAddInsUpdate,OnBeginShutdown,OnDisconnection。
我需要执行以下操作:从文件
- 加载配置文件数据
- 加载注册表数据
- 开始新的会话
- 创建* .pst文件
- 订阅浏览器事件
- 连接到Internet服务器以获得一些数据
- 在主菜单
- 创建菜单项创建一个工具栏
- 添加/删除Outllok几件事情(在* .pst文件级)
请指教,我所应该做的是什么时候?
- 我需要在OnConnection方法中执行什么?
- 只有当OnStartupComplete调用时才允许什么?
- 在OnBeginShutdown/OnDisconnection期间,我需要什么资源来释放处理?
答
请注意1,2和6不是Outlook插件特定的任务。
3不需要:作为插件,您不会创建会话 - 您可以通过实施OnConnection
方法与现有的会话建立连接。
为4和9,我建议使用RDO:http://dimastr.com/redemption/ (也可用于3,如果你真的需要另一个会话)
对于5,7和8,我建议使用ADX:http://www.add-in-express.com/add-in-net/
(你赢了如果你这样做的话,实际上你不必担心IDTExtensibility2
)
OnConnection
你可以在这里获得你对Application
接口的引用,从中你可以得到其他的东西。
OnStartupComplete
是您可以放置所有初始化代码的地方。
OnDisconnection
是您应该释放在会话期间可能累积的所有剩余OOM引用的位置,即从您通过OnConnection
收到的初始Application
引用导出的所有内容。