Outlook Add-in(COM加載項)技術指南
Version |
Date |
Creator |
Description |
|
|
鄭昀 |
草稿 |
這個按鈕的名稱是“轉發”.
這個對話框中的內容將根據您選中的上下文而定,更詳細內容參見下面章節。簡單的說,我們將根據您選中的項是郵件,還是便箋,或者日程,或者聯系人,智能顯示發送內容。
“聯系人列表”將從您的Outlook聯系人中讀取。
第一個問題,如何確定當前用戶選中的項是什么類型,郵件,還是聯系人?
首先我們通過
Set oSelection = g_oExplorer.Selection
得到當前用戶所選擇的項。
如果oSelection是Nothing,那么表明用戶沒有選中任何東西。
然后,用
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事件,來增加一個我們自定制的屬性頁,如下所示:
它隸屬于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