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

發表于:2007-07-01來源:作者:點擊數: 標簽:
Outlook Add-in(COM加載項)技術指南 Version Date Creator Description 1.0.0 .1 2004-3-9 鄭昀 草稿 2.3.2 . g_oForwardBHandler_Click事件 這個按鈕的名稱是“轉發”. 這個對話框中的內容將根據您選中的上下文而定,更詳細內容參見下面章節。簡 單的說,

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

Version

Date

Creator

Description

1.0.0.1

2004-3-9

鄭昀

草稿

2.3.2. g_oForwardBHandler_Click事件

這個按鈕的名稱是“轉發”.

 

這個對話框中的內容將根據您選中的上下文而定,更詳細內容參見下面章節。簡單的說,我們將根據您選中的項是郵件,還是便箋,或者日程,或者聯系人,智能顯示發送內容。

 

“聯系人列表”將從您的Outlook聯系人中讀取。

 

 

第一個問題,如何確定當前用戶選中的項是什么類型,郵件,還是聯系人?

首先我們通過

Set oSelection = g_oExplorer.Selection

得到當前用戶所選擇的項。

如果oSelectionNothing,那么表明用戶沒有選中任何東西。

然后,用

For Each oItem In oSelection

遍歷這個Selection集合。這個集合中的每一個對象都應該是一個Item對象。我們可以通過這個Item對象的“MessageClass”屬性獲知它是什么。它可能是:

Ø         IPM.Note            郵件

Ø         IPM.Contact              聯系人

Ø         IPM.StickyNote  便箋

Ø         IPM.Appointment     日程

 

對于不同類型Item對象,我們獲取它的不同屬性。

代碼如下所示:

´ ------------------------------------------------------------------

    ´

    ´ 如果選中了一項:

    ´   那么首先判斷是否是一封郵件,即oItem.MessageClass是"IPM.Note"

    ´

    For Each oItem In oSelection

        If oItem.MessageClass = "IPM.Note" Then

           

            ´ get the current mail item

            Dim oCurMail As Outlook.MailItem

            Set oCurMail = oItem

           

            szContent = "主題:" & oCurMail.Subject & vbCrLf

                       

        ´   那么其次判斷是否是一個聯系人,即oItem.MessageClass是"IPM.Contact"

        ElseIf oItem.MessageClass = "IPM.Contact" Then

           

            ´ get the current mail item

            Dim oCurContact As Outlook.ContactItem

            Set oCurContact = oItem

           

                       

        ´   那么其次判斷是否是一個便箋,即oItem.MessageClass是"IPM.StickyNote"

        ElseIf oItem.MessageClass = "IPM.StickyNote" Then

           

            ´ get the current note item

            Dim oCurNote As Outlook.NoteItem

            Set oCurNote = oItem

           

                       

        ´   那么其次判斷是否是一個日程,即oItem.MessageClass是"IPM.Appointment"

        ElseIf oItem.MessageClass = "IPM.Appointment" Then

           

            ´ get the current appointment item

            Dim oCurAppo As Outlook.AppointmentItem

            Set oCurAppo = oItem

            

           End If

       

    Next

 

處理屬性頁事件

VB中,我們需要編寫NameSpace對象和Application對象的OptionsPageAdd事件,來增加一個我們自定制的屬性頁,如下所示:

 

2.4.1. g_oNS_OptionsPagesAdd事件

它隸屬于NameSpace對象。當用戶單擊我們正在監控的名稱區的文件夾,然后選擇了“屬性”時,將觸發NameSpace對象的OptionPagesAdd事件。

本事件有兩個參數,含義是:

n         Pages           是Outlook屬性頁的一個集合;

n         Folder           它是用戶正試圖檢索其屬性的文件夾。

 

首先,通過調用

Set oNewPage = CreateObject("TomosoftP.AdminPage")

創建對象,這是一個我們編寫的ActiveX控件,實際上就是添加到PropertyPages集合中的子例程的屬性頁。

 

其次,為我們創建的屬性頁傳遞默認數值。

然后,通過把自身對象的引用進行:

oNewPage.oAdmin = Me

將我們加載項的對象自身傳遞給新的屬性頁,因為這樣才可以,當屬性頁上的屬性被更改之后,允許ActiveX控件回調到加載項中。

 

最后,通過

Pages.Add oNewPage

將新的頁面添加到PropertyPages集合中。Pages是輸入參數。

 

[版權聲明:

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

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不保證所給信息在發布之日以后的準確性。

 


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

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