Outlook Add-in
(COM
加载项
)
技术指南
2 COM
加载项的开发过程
摘要
:本章节详细介绍了
Outlook Add-in
插件的开发过程。
2.1.
开发
COM
加载项
在
VB
中,首先需要引用“
Microsoft
Add-in Designer
”类型库,该库包含了一些
COM
加载项必需的界面。
其次
,
Visual Basic
中
需要
“
Implements IDTExtensibility
更多信息
一个
Office2000
下的内部
COM
插件必须实现一个
_IDTExtensibility2
派发接口。
_IDTExtensibility2
派发接口被定义在
MSADDin Designer
类型库
(MSADDNDR.dll/MSADDNDR.tlb)
中,它通常位于
<
盘符
>/Program Files/Common Files/Designer
下。
_IDTExtensibility2
接口中必须实现下面五个接口事件函数
(
一般只需编写
OnConnection
和
OnDisconnection
中代码
)
。
2.1.1
.
IDTExtensibility2
事件背景知识
I
DTExtensibility2
提供了
5
个将用于
COM
加载项的事件:
Ø
OnConnection
装载插件到内存时处理
(
可以通过自动化在程序启动时自动装载插件
)
。
Ø
OnDisconnection
从内存中缷载插件时处理。
Ø
OnStartupComplete
当应用程序启动时插件刚装载完成时处理。
Ø
OnBeginShutdown
当应用程序关闭时插件刚缷载完成时处理。
Ø
OnAddInsUpdate
COM
插件改变时处理。
下面我们一一介绍这些事件:
2.1.1
.1. OnConnection
事件
当第一次加载或者连接加载项时,例如
Outlook
启动时,或者当用户选择加载
COM
加载项时,将调用
OnConnection
事件。
OnConnection
事件是获取或存储稍候将要在代码中使用的
Outlook
的
Application
队形最好的地方。
当发生
OnConnection
事件,将传递以下四个参数:
Application
参数:是
Outlook
的
Application
的引用。
ConnectMode
参数:
COM
加载项的加载方式。可以是以下常量中的一种:
ext_cm_AfterStartup,ext_cm_CommandLine,ext_cm_External
或者
ext_cm_Startup
。当
Outlook
启动时连接我们的加载项,这个参数被设置为
ext_cm_Startup
。
AddInInst
参数:传递引用
COM
加载项当前实例的对象。
Custom()
参数:一个
Variant
数据类型的阵列,可以存储用户定义的加载项数。对于
Office2000
加载项,本参数忽略。
2.1.1
.2. OnDisconnection
事件
当
COM
加载项与应用程序断开连接时,将发生
OnDisconnection
事件。
当发生
OnDisconnection
事件,将传递以下两个参数:
RemoveMode
参数:指定加载项的断开方式,它可以被设置为以下常量:
ext_dm_HostShutdown
或
ext_dm_UserClosed
。顾名思义,
ext_dm_HostShutdown
表示加载项通过关闭主机来断开;
ext_dm_UserClosed
表示用户在
“COM
加载项
”
对话框中取消选中加载项的复选框或加载项的
Connect
属性被设置为
False
时断开加载项。
Custom()
参数:一个
Variant
数据类型的阵列,可以存储用户定义的加载项数。对于
Office2000
加载项,本参数忽略。
可以使用
OnDisconnection
事件来恢复对应用程序所做的更改,或者执行常规的应用程序来清理操作。
确保撤销您创建的所有检测对象,因为如果这些对象仍旧存在,那么
Outlook
将无法正常关闭。
2.1.1
.3.
OnStartupComplete
事件
对于在启动主控应用程序时连接
COM
加载项的情况,当主机完成所有的启动例程时,将触发
OnStartupComplete
事件。如果用户在加载应用程序后从
“COM
加载项
”
选择加载项时,不会发生
OnStartupComplete
事件。在这种情况下,将发生
OnConnection
事件。
该事件过程是将一些全局和本地变量设置为与它们相应的
Outlook
对象的好地方。
2.1.1
.4.
OnBeginShutdown
事件
当应用程序将要关闭并且在
OnDisconnection
事件之前调用时,将触发
OnBeginShutdown
事件。甚至在触发
OnBeginShutdown
事件之后,您仍然完全可以访问
Outlook
对象模型,因此您可以卸载对象之前保存注册表或者文件的设置,也可以保存对您的对象所做的修改。
2.1.1
.5.
OnAddInsUpdate
事件
当更新
COM
加载项的列表时,将触发
OnAddInsUpdate
事件。可以使用本事件来确保您的加载项所以来的其他加载项是连接的。
2.1.2
.
我们实现的
IDTExtensibility2
事件
2.1.2
.1.
IDTExtensibility2_OnConnection
事件
OnConnection
事件中,我们预先读取注册表,把默认参数读出来。
同时,通过调用
Set g_oApplication = Application
得到整个模型的根对象。
Disclaimers
:
Programmer’s Blog List
:
|
|
[MVPLeader]
Grace Zhang
|
|
本文档仅供参考。本文档所包含的信息代表了在发布之日,
zhengyun
对所讨论问题的当前看法,
zhengyun
不保证所给信息在发布之日以后的准确性。
用户应清楚本文档的准确性及其使用可能带来的全部风险。可以复制和传播
本文档
,但须遵守以下条款:
-
复制时不得修改原文,复制内容须包含所有页
;
-
所有副本均须含有
zhengyun
的版权声明以及所提供的其它声明
;
-
不得以赢利为目的对本文档进行传播
。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12755