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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
