中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual Basic > 综合文章
Outlook Add-in(COM加载项)技术指南(四)
作者:未知 时间:2004-03-30 12:12 出处:Blog 责编:chinaitpower
              摘要:Outlook Add-in(COM加载项)技术指南(四)

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

得到当前用户所选择的项。

如果oSelectionNothing,那么表明用户没有选中任何东西。

然后,用

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不保证所给信息在发布之日以后的准确性。

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有