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