Outlook Add-in(COM加载项)技术指南(四)

系统 2026 0

Outlook Add-in(COM加载项)技术指南

Revision History:

Version

Date

Creator

Description

1.0.0 .1

2004-3-9

郑昀

草稿

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

博客堂

小气的神

飞鹰手记   飞鹰手记之 .NET 专版

蝈蝈俊

思归

[MVPLeader] Grace Zhang

豆腐

跟随大象的舞步

Don Box's Blog

Eric.Weblog()

The .NET Guy

Blogs@asp.net

 

本文档仅供参考。本文档所包含的信息代表了在发布之日, zhengyun 对所讨论问题的当前看法, zhengyun 不保证所给信息在发布之日以后的准确性。

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12757


Outlook Add-in(COM加载项)技术指南(四)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论