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

發表于:2007-07-01來源:作者:點擊數: 標簽:
Outlook Add-in(COM加載項)技術指南 2.1.2 .2. IDTExtensibility2_OnDisconnection 事件 OnDisconnection事件中,我們銷毀所有的全局對象。 2.1.2 .3. IDTExtensibility2_OnStartupComplete 事件 OnStartupComplete事件主要的工作就是,創建工具欄和按鈕,

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

 

2.1.2.2. IDTExtensibility2_OnDisconnection事件

OnDisconnection事件中,我們銷毀所有的全局對象。

2.1.2.3. IDTExtensibility2_OnStartupComplete事件

OnStartupComplete事件主要的工作就是,創建工具欄和按鈕,如果它們不存在的話。

 

我們首先搜索Explorer對象的CommandBars集合,以察看我們的“短信速遞”工具欄是否存在。如果找到該工具欄,則只需使之可見。

如果沒有找到我們的工具欄,那么我們將創建工具欄:

通過傳遞命令欄的名稱及Temporary參數,代碼將把新的CommandBar對象添加到CommandBars集合中。

Temporary參數指出Outlook應該在Outlook會話間保持命令欄。然后,代碼開始創建命令上的按鈕。

為了創建按鈕,代碼將使用CommandBars對象的Controls集合。

然后,代碼將把2個按鈕控件添加到集合中??丶愋褪怯蒻soControlButton常量來標識的。

代碼還將為所有控件傳遞ID 1;表示這個控件是自定義控件而不是內置控件。

代碼還將傳遞Temporary參數并將它設置為False,以使Outlook在會話間保持按鈕。

 

代碼接收到來自于Control集合Add方法的CommandBarButton對象之后,它將開始設置CommandBarButton對象的屬性:

u       Caption屬性:控件的默認屏幕提示;

u       FaceId屬性:指定按鈕的外觀。

u       Style屬性:比如,顯示按鈕外觀和標題文本的msoButtonIconAndCaption。

您看到,我們前面聲明g_oCreateSMSBHandler使用WithEvents關鍵詞,被聲明為Office.CommandBarButton,

它指出g_oCreateSMSBHandler用來響應CommandBarButton的事件。

 

2.1.2.4. IDTExtensibility2_OnBeginShutdown事件

OnBeginShutdown事件中,我們銷毀所有的全局對象。

 

全局引用的變量

VB中,我們需要使用一些Outlook中的對象模型。下面我們一一列出:

 

2.2.1.Application對象

這是整個模型的根對象。

根對象提供對其他對象模型的訪問。在 Outlook 中使用 VBA 時,Application 對象被隱含聲明,

這樣您可以選擇是否使用 Application 關鍵字。

 

2.2.2.NameSpace對象

用于訪問存儲項目(如文件夾)?!癕API”是唯一可以使用的名稱空間。

 

2.2.3.Explorer對象

這是顯示 Outlook 項目集合的默認界面。每個不同的項目類型都有不同的瀏覽器。

 

2.2.4.CommandBars集合

在Office應用程序中,盡管菜單和工具欄按鈕看上去不太一樣,但實質上它們是相同類型的對象。

CommandBars集合包含程序中的所有命令條,如:工具條和菜單條。

每一個CommandBars集合都有一個CommandBar對象和它對應,CommandBar 對象可以包含其它的 CommandBar 對象,這些對象是作為按鈕或菜單命令來用的。每一個CommandBar都將通過CommandBarControls 對象被引用,

CommandBarControls又可以包含一組CommandBarControl對象。每一個CommandBarControl可以包含一個CommandBar對象,并可以通過它來存取控件屬性。每一個CommandBarControl對象,實際是對應CommandBarControls中的控件集合。

CommandBarControl可以有三種表現形式:

n         彈出式 (CommandBarPopup): 相當于菜單條的一個菜單項?

n         組合框(CommandBarComboBox):類似于工具條中組合框控件。它包括一個工具欄和緊接著工具欄的一個下拉箭頭。單擊該按鈕,將顯示出更多的帶圖標的菜單命令。

n         按鈕(CommandBarButton):相當于標準的工具欄按鈕,即帶有圖標的按鈕。

 

2.2.5.Items集合

Items對象集合包括指定文件夾中所有Item條目對象。其中,

Item對象用于包含特定的 Outlook 數據,例如電子郵件消息、約會或聯系人。

Ø         Outlook.AppointmentItem   日程的條目對象

Ø         Outlook.ContactItem        聯系人的條目對象

Ø         Outlook.MailItem           郵件的條目對象

Ø         Outlook.NoteItem           便箋的條目對象

 

2.2.6.Selection集合

    Selection對象包括在用戶界面中用戶選定的項目組。

處理按鈕事件

在VB中,我們需要填寫類似于“g_oCreateSMSBHandler_Click”函數,對按鈕的點擊作出響應。下面我們一一列出兩個按鈕的事件:

 

2.3.1. g_oCreateSMSBHandler_Click事件

這個按鈕的名稱是“創建短信”。

“聯系人列表”將從您的Outlook聯系人中讀取,只顯示那些提供了移動電話號碼的聯系人。您點擊某一個聯系人,我們把這個聯系人加入“收信人手機號碼”的編輯框中。

 

本事件主要的事情就是,彈出一個“發送短信”的對話框。并取出聯系人中設置了移動號碼的。

 

其他的細節我們就不再介紹了,介紹一下默認Outlook聯系人的獲取問題:

首先我們通過

Set olContacts = g_oNS.GetDefaultFolder(olFolderContacts).Items

獲得默認的聯系人文件夾的Items集合。

然后,用

For Each olContact In olContacts

遍歷這個Items集合。這個集合中的每一個對象都應該是一個“Outlook.ContactItem”Item對象。所以我們可以獲得這個Item對象的顯示名稱和移動手機號碼。

我們只顯示那些擁有移動手機號碼的聯系人。

代碼如下所示:

´ 準備取出聯系人中帶有移動號碼的作為收信人:

    ´

    Dim olContacts As Outlook.Items

    Dim olContact As Outlook.ContactItem

    ´

    ´ GetDefaultFolder 方法基于 FolderType 參數返回默認的文件夾

    ´ (例如,olFolderInbox 常量將“收件箱”文件夾返回給當前登錄的用戶)。

    ´ 我們現在選擇進入的是:

    ´   包含 ContactItem 對象和 DistListItem 對象的“聯系人”文件夾 (olFolderContacts)。

    Set olContacts = g_oNS.GetDefaultFolder(olFolderContacts).Items

    frmMenuMain.listContact.Clear

   

    Dim nIndex As Integer

    Dim szContactItem As String

    nIndex = 0

    On Error Resume Next

    ´ 遍歷每一個聯系人:

    For Each olContact In olContacts

        If Len(olContact.MobileTelephoneNumber) = 11 Then

            ´ 聯系人的顯示名稱:

            szContactItem = Replace(olContact.FileAs, "[", "")

            szContactItem = Replace(szContactItem, "]", "")

            ´ 聯系人的移動號碼:

            frmMenuMain.listContact.AddItem szContactItem & "[" & _

                                            olContact.MobileTelephoneNumber & "]", nIndex

            nIndex = nIndex + 1

        End If

    Next

    On Error GoTo 0

 

 

[版權聲明:

第二章部分文字引用自《Programming Microsoft Outlook and Exchange》一書,該書作者Thomas Rizzo,特此聲明]

 

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


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

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