Outlook Add-in(COM加載項(xiàng))技術(shù)指南
Revision History:
|
Version
|
Date
|
Creator
|
Description
|
|
|
|
鄭昀
|
草稿
|
2.3.2
.
g_oForwardBHandler_Click
事件
這個(gè)按鈕的名稱是“轉(zhuǎn)發(fā)”.
這個(gè)對(duì)話框中的內(nèi)容將根據(jù)您選中的上下文而定,更詳細(xì)內(nèi)容參見(jiàn)下面章節(jié)。簡(jiǎn)
單的說(shuō),我們將根據(jù)您選中的項(xiàng)是郵件,還是便箋,或者日程,或者聯(lián)系人,智能顯示發(fā)送內(nèi)容。
“聯(lián)系人列表”將從您的
Outlook
聯(lián)系人中讀取。
第一個(gè)問(wèn)題,如何確定當(dāng)前用戶選中的項(xiàng)是什么類型,郵件,還是聯(lián)系人?
首先我們通過(guò)
Set oSelection = g_oExplorer.Selection
得到當(dāng)前用戶所選擇的項(xiàng)。
如果
oSelection
是
Nothing
,那么表明用戶沒(méi)有選中任何東西。
然后,用
For Each oItem In oSelection
遍歷這個(gè)
Selection
集合。這個(gè)集合中的每一個(gè)對(duì)象都應(yīng)該是一個(gè)
Item
對(duì)象。我們可以通過(guò)這個(gè)
Item
對(duì)象的“
MessageClass
”屬性獲知它是什么。它可能是:
?
????????
IPM.Note
???????????
郵件
?
????????
IPM.Contact
?????????????
聯(lián)系人
?
????????
IPM.StickyNote
?
便箋
?
????????
IPM.Appointment
????
日程
對(duì)于不同類型
Item
對(duì)象,我們獲取它的不同屬性。
代碼如下所示:
|
' ------------------------------------------------------------------
???
'
???
'
如果選中了一項(xiàng):
???
'
??
那么首先判斷是否是一封郵件,即
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
????????????
???????????
???????
'
??
那么其次判斷是否是一個(gè)聯(lián)系人,即
oItem.MessageClass
是
"IPM.Contact"
??????
?
ElseIf oItem.MessageClass = "IPM.Contact" Then
???????????
???????????
' get the current mail item
???????????
Dim oCurContact As Outlook.ContactItem
?
??????????
Set oCurContact = oItem
???????????
????????????
???????????
???????
'
??
那么其次判斷是否是一個(gè)便箋,即
oItem.MessageClass
是
"IPM.StickyNote"
?????
??
ElseIf oItem.MessageClass = "IPM.StickyNote" Then
???????????
???????????
' get the current note item
???????????
Dim oCurNote As Outlook.NoteItem
???????????
Set oCurNote = oItem
???????????
????????????
???????????
???????
'
??
那么其次判斷是否是一個(gè)日程,即
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.
處理屬性頁(yè)事件
在 VB 中,我們需要編寫(xiě) NameSpace 對(duì)象和 Application 對(duì)象的 OptionsPageAdd 事件,來(lái)增加一個(gè)我們自定制的屬性頁(yè),如下所示:
2.4.1
.
g_oNS_OptionsPagesAdd
事件
它隸屬于
NameSpace
對(duì)象。當(dāng)用戶單擊我們正在監(jiān)控的名稱區(qū)的文件夾,然后選擇了“屬性”時(shí),將觸發(fā)
NameSpace
對(duì)象的
OptionPagesAdd
事件。
本事件有兩個(gè)參數(shù),含義是:
n
????????
Pages
??????????
是
Outlook
屬性頁(yè)的一個(gè)集合;
n
????????
Folder
??????????
它是用戶正試圖檢索其屬性的文件夾。
首先,通過(guò)調(diào)用
Set oNewPage = CreateObject("TomosoftP.AdminPage")
創(chuàng)建對(duì)象,這是一個(gè)我們編寫(xiě)的
ActiveX
控件,實(shí)際上就是添加到
PropertyPages
集合中的子例程的屬性頁(yè)。
其次,為我們創(chuàng)建的屬性頁(yè)傳遞默認(rèn)數(shù)值。
然后,通過(guò)把自身對(duì)象的引用進(jìn)行:
oNewPage.oAdmin = Me
將我們加載項(xiàng)的對(duì)象自身傳遞給新的屬性頁(yè),因?yàn)檫@樣才可以,當(dāng)屬性頁(yè)上的屬性被更改之后,允許
ActiveX
控件回調(diào)到加載項(xiàng)中。
最后,通過(guò)
Pages.Add oNewPage
將新的頁(yè)面添加到
PropertyPages
集合中。
Pages
是輸入?yún)?shù)。
?
[
版權(quán)聲明:
第二章部分文字引用自《
Programming Microsoft Outlook and Exchange
》一書(shū),該書(shū)作者
Thomas Rizzo
,特此聲明
]
Disclaimers
:
|
Programmer’s Blog List
:
|
|
|
|
[MVPLeader]
Grace Zhang
|
|
|
本文檔僅供參考。本文檔所包含的信息代表了在發(fā)布之日,
zhengyun
對(duì)所討論問(wèn)題的當(dāng)前看法,
zhengyun
不保證所給信息在發(fā)布之日以后的準(zhǔn)確性。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12757
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

