Outlook Add-in(COM加載項)技術指南
Revision History:
Version
|
Date
|
Creator
|
Description
|
|
|
鄭昀
|
草稿
|
2.3.2
.
g_oForwardBHandler_Click
事件
這個按鈕的名稱是“轉發”.
這個對話框中的內容將根據您選中的上下文而定,更詳細內容參見下面章節。簡
單的說,我們將根據您選中的項是郵件,還是便箋,或者日程,或者聯系人,智能顯示發送內容。
“聯系人列表”將從您的
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
|
2.4.
處理屬性頁事件
在 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
:
Programmer’s Blog List
:
|
|
[MVPLeader]
Grace Zhang
|
|
本文檔僅供參考。本文檔所包含的信息代表了在發布之日,
zhengyun
對所討論問題的當前看法,
zhengyun
不保證所給信息在發布之日以后的準確性。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12757
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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