Outlook Add-in(COM加載項)技術指南(二)

發表于:2007-07-01來源:作者:點擊數: 標簽:
Outlook Add-in (COM 加載項 ) 技術指南 加載項的 開發 過程 摘要 :本章節詳細介紹了Outlook Add-in插件的開發過程。 開發COM加載項 在 VB 中,首先需要引用“ Microsoft Add-in Designer ”類型庫,該庫包含了一些COM加載項必需的界面。 其次,Visual Basi

Outlook Add-in(COM加載項)

技術指南

 

加載項的開發過程

摘要:本章節詳細介紹了Outlook Add-in插件的開發過程。

 

開發COM加載項

VB中,首先需要引用“Microsoft  Add-in Designer”類型庫,該庫包含了一些COM加載項必需的界面。

其次,Visual Basic中需要“Implements IDTExtensibility2。

 

更多信息

一個Office2000下的內部COM插件必須實現一個_IDTExtensibility2派發接口。

_IDTExtensibility2派發接口被定義在MSADDin Designer類型庫(MSADDNDR.dll/MSADDNDR.tlb)中,它通常位于<盤符>/Program Files/Common Files/Designer下。

_IDTExtensibility2接口中必須實現下面五個接口事件函數(一般只需編寫OnConnection和OnDisconnection中代碼)。

2.1.1. IDTExtensibility2事件背景知識

IDTExtensibility2提供了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加載項的加載方式??梢允且韵鲁A恐械囊环N: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:

clearcase/" target="_blank" >cc6633; PADDING-BOTTOM: 0cm; BORDER-LEFT: #333399; WIDTH: 163pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #333399" width=217>

Programmer’s Blog List

 

[MVPLeader]

 

本文檔僅供參考。本文檔所包含的信息代表了在發布之日,zhengyun對所討論問題的當前看法,zhengyun不保證所給信息在發布之日以后的準確性。

用戶應清楚本文檔的準確性及其使用可能帶來的全部風險??梢詮椭坪蛡鞑ケ疚臋n,但須遵守以下條款:

  1. 復制時不得修改原文,復制內容須包含所有頁 ;
  2. 所有副本均須含有 zhengyun的版權聲明以及所提供的其它聲明 ;
  3. 不得以贏利為目的對本文檔進行傳播 。



原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97