Outlook Add-in
(COM
加載項
)
技術(shù)指南
?
2 COM
加載項的開發(fā)過程
摘要
:本章節(jié)詳細(xì)介紹了
Outlook Add-in
插件的開發(fā)過程。
2.1.
開發(fā)
COM
加載項
在
VB
中,首先需要引用“
Microsoft
?
Add-in Designer
”類型庫,該庫包含了一些
COM
加載項必需的界面。
其次
,
Visual Basic
中
需要
“
Implements IDTExtensibility
更多信息
一個
Office2000
下的內(nèi)部
COM
插件必須實現(xiàn)一個
_IDTExtensibility2
派發(fā)接口。
_IDTExtensibility2
派發(fā)接口被定義在
MSADDin Designer
類型庫
(MSADDNDR.dll/MSADDNDR.tlb)
中,它通常位于
<
盤符
>/Program Files/Common Files/Designer
下。
_IDTExtensibility2
接口中必須實現(xiàn)下面五個接口事件函數(shù)
(
一般只需編寫
OnConnection
和
OnDisconnection
中代碼
)
。
2.1.1
.
IDTExtensibility2
事件背景知識
I
DTExtensibility2
提供了
5
個將用于
COM
加載項的事件:
?
????????
OnConnection
???
?
?
裝載插件到內(nèi)存時處理
(
可以通過自動化在程序啟動時自動裝載插件
)
。
?
????????
OnDisconnection
??
從內(nèi)存中缷載插件時處理。
?
????????
OnStartupComplete
當(dāng)應(yīng)用程序啟動時插件剛裝載完成時處理。
?
????????
OnBeginShutdown
?
當(dāng)應(yīng)用程序關(guān)閉時插件剛缷載完成時處理。
?
????????
OnAddInsUpdate
?
??
COM
插件改變時處理。
下面我們一一介紹這些事件:
2.1.1
.1. OnConnection
事件
當(dāng)?shù)谝淮渭虞d或者連接加載項時,例如
Outlook
啟動時,或者當(dāng)用戶選擇加載
COM
加載項時,將調(diào)用
OnConnection
事件。
OnConnection
事件是獲取或存儲稍候?qū)⒁诖a中使用的
Outlook
的
Application
隊形最好的地方。
當(dāng)發(fā)生
OnConnection
事件,將傳遞以下四個參數(shù):
Application
參數(shù):是
Outlook
的
Application
的引用。
ConnectMode
參數(shù):
COM
加載項的加載方式??梢允且韵鲁A恐械囊环N:
ext_cm_AfterStartup,ext_cm_CommandLine,ext_cm_External
或者
ext_cm_Startup
。當(dāng)
Outlook
啟動時連接我們的加載項,這個參數(shù)被設(shè)置為
ext_cm_Startup
。
AddInInst
參數(shù):傳遞引用
COM
加載項當(dāng)前實例的對象。
Custom()
參數(shù):一個
Variant
數(shù)據(jù)類型的陣列,可以存儲用戶定義的加載項數(shù)。對于
Office2000
加載項,本參數(shù)忽略。
2.1.1
.2. OnDisconnection
事件
當(dāng)
COM
加載項與應(yīng)用程序斷開連接時,將發(fā)生
OnDisconnection
事件。
當(dāng)發(fā)生
OnDisconnection
事件,將傳遞以下兩個參數(shù):
RemoveMode
參數(shù):指定加載項的斷開方式,它可以被設(shè)置為以下常量:
ext_dm_HostShutdown
或
ext_dm_UserClosed
。顧名思義,
ext_dm_HostShutdown
表示加載項通過關(guān)閉主機(jī)來斷開;
ext_dm_UserClosed
表示用戶在
“COM
加載項
”
對話框中取消選中加載項的復(fù)選框或加載項的
Connect
屬性被設(shè)置為
False
時斷開加載項。
Custom()
參數(shù):一個
Variant
數(shù)據(jù)類型的陣列,可以存儲用戶定義的加載項數(shù)。對于
Office2000
加載項,本參數(shù)忽略。
可以使用
OnDisconnection
事件來恢復(fù)對應(yīng)用程序所做的更改,或者執(zhí)行常規(guī)的應(yīng)用程序來清理操作。
確保撤銷您創(chuàng)建的所有檢測對象,因為如果這些對象仍舊存在,那么
Outlook
將無法正常關(guān)閉。
2.1.1
.3.
OnStartupComplete
事件
對于在啟動主控應(yīng)用程序時連接
COM
加載項的情況,當(dāng)主機(jī)完成所有的啟動例程時,將觸發(fā)
OnStartupComplete
事件。如果用戶在加載應(yīng)用程序后從
“COM
加載項
”
選擇加載項時,不會發(fā)生
OnStartupComplete
事件。在這種情況下,將發(fā)生
OnConnection
事件。
該事件過程是將一些全局和本地變量設(shè)置為與它們相應(yīng)的
Outlook
對象的好地方。
2.1.1
.4.
OnBeginShutdown
事件
當(dāng)應(yīng)用程序?qū)⒁P(guān)閉并且在
OnDisconnection
事件之前調(diào)用時,將觸發(fā)
OnBeginShutdown
事件。甚至在觸發(fā)
OnBeginShutdown
事件之后,您仍然完全可以訪問
Outlook
對象模型,因此您可以卸載對象之前保存注冊表或者文件的設(shè)置,也可以保存對您的對象所做的修改。
2.1.1
.5.
OnAddInsUpdate
事件
當(dāng)更新
COM
加載項的列表時,將觸發(fā)
OnAddInsUpdate
事件??梢允褂帽臼录泶_保您的加載項所以來的其他加載項是連接的。
2.1.2
.
我們實現(xiàn)的
IDTExtensibility2
事件
2.1.2
.1.
IDTExtensibility2_OnConnection
事件
OnConnection
事件中,我們預(yù)先讀取注冊表,把默認(rèn)參數(shù)讀出來。
同時,通過調(diào)用
Set g_oApplication = Application
得到整個模型的根對象。
Disclaimers
:
Programmer’s Blog List
:
|
|
[MVPLeader]
Grace Zhang
|
|
本文檔僅供參考。本文檔所包含的信息代表了在發(fā)布之日,
zhengyun
對所討論問題的當(dāng)前看法,
zhengyun
不保證所給信息在發(fā)布之日以后的準(zhǔn)確性。
用戶應(yīng)清楚本文檔的準(zhǔn)確性及其使用可能帶來的全部風(fēng)險。可以復(fù)制和傳播
本文檔
,但須遵守以下條款:
-
復(fù)制時不得修改原文,復(fù)制內(nèi)容須包含所有頁
;
-
所有副本均須含有
zhengyun
的版權(quán)聲明以及所提供的其它聲明
;
-
不得以贏利為目的對本文檔進(jìn)行傳播
。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12755
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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