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

系统 3062 0

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

 

2.1.2 .2. IDTExtensibility2_OnDisconnection 事件

OnDisconnection 事件中 我们销毁所有的全局对象

2.1.2 .3. IDTExtensibility2_OnStartupComplete 事件

OnStartupComplete 事件主要的工作就是,创建工具栏和按钮,如果它们不存在的话。

 

我们首先搜索 Explorer 对象的 CommandBars 集合 以察看我们的 短信速递 工具栏是否存在。如果找到该工具栏,则只需使之可见。

如果没有找到我们的工具栏,那么我们将创建工具栏:

通过传递命令栏的名称及 Temporary 参数,代码将把新的 CommandBar 对象添加到 CommandBars 集合中。

Temporary 参数指出 Outlook 应该在 Outlook 会话间保持命令栏。然后,代码开始创建命令上的按钮。

为了创建按钮,代码将使用 CommandBars 对象的 Controls 集合。

然后,代码将把 2 个按钮控件添加到集合中。控件类型是由 msoControlButton 常量来标识的。

代码还将为所有控件传递 ID 1 ;表示这个控件是自定义控件而不是内置控件。

代码还将传递 Temporary 参数并将它设置为 False ,以使 Outlook 在会话间保持按钮。

 

代码接收到来自于 Control 集合 Add 方法的 CommandBarButton 对象之后,它将开始设置 CommandBarButton 对象的属性:

u        Caption 属性:控件的默认屏幕提示;

u        FaceId 属性:指定按钮的外观。

u        Style 属性:比如,显示按钮外观和标题文本的 msoButtonIconAndCaption

您看到,我们前面声明 g_oCreateSMSBHandler 使用 WithEvents 关键词,被声明为 Office.CommandBarButton

它指出 g_oCreateSMSBHandler 用来响应 CommandBarButton 的事件。

 

2.1.2 .4. IDTExtensibility2_OnBeginShutdown 事件

OnBeginShutdown 事件中 我们销毁所有的全局对象

 

2.2. 全局引用的变量

VB 中,我们需要使用一些 Outlook 中的对象模型。下面我们一一列出:

 

2.2.1 .Application 对象

这是整个模型的根对象。

根对象提供对其他对象模型的访问。在 Outlook 中使用 VBA 时, Application 对象被隐含声明,

这样您可以选择是否使用 Application 关键字。

 

2.2.2 .NameSpace 对象

用于访问存储项目(如文件夹)。“ MAPI ”是唯一可以使用的名称空间。

 

2.2.3 .Explorer 对象

这是显示 Outlook 项目集合的默认界面。每个不同的项目类型都有不同的浏览器。

 

2.2.4 .CommandBars 集合

Office 应用程序中,尽管菜单和工具栏按钮看上去不太一样,但实质上它们是相同类型的对象。

CommandBars 集合包含程序中的所有命令条,如:工具条和菜单条。

每一个 CommandBars 集合都有一个 CommandBar 对象和它对应, CommandBar 对象可以包含其它的 CommandBar 对象,这些对象是作为按钮或菜单命令来用的。每一个 CommandBar 都将通过 CommandBarControls 对象被引用,

CommandBarControls 又可以包含一组 CommandBarControl 对象。每一个 CommandBarControl 可以包含一个 CommandBar 对象,并可以通过它来存取控件属性。每一个 CommandBarControl 对象,实际是对应 CommandBarControls 中的控件集合。

CommandBarControl 可以有三种表现形式:

n          弹出式 (CommandBarPopup) : 相当于菜单条的一个菜单项 ?

n          组合框 (CommandBarComboBox) :类似于工具条中组合框控件。它包括一个工具栏和紧接着工具栏的一个下拉箭头。单击该按钮,将显示出更多的带图标的菜单命令。

n          按钮 (CommandBarButton) :相当于标准的工具栏按钮,即带有图标的按钮。

 

2.2.5 .Items 集合

Items 对象集合包括指定文件夹中所有 Item 条目对象。其中,

Item 对象用于包含特定的 Outlook 数据,例如电子邮件消息、约会或联系人。

Ø          Outlook.AppointmentItem    日程的条目对象

Ø          Outlook.ContactItem          联系人的条目对象

Ø          Outlook.MailItem             邮件的条目对象

Ø          Outlook.NoteItem              便笺的条目对象

 

2.2.6 .Selection 集合

    Selection 对象包括在用户界面中用户选定的项目组。

2.3. 处理按钮事件

VB 中,我们需要填写类似于“ g_oCreateSMSBHandler_Click ”函数,对按钮的点击作出响应。下面我们一一列出两个按钮的事件:

 

2.3.1 . g_oCreateSMSBHandler_Click 事件

这个按钮的名称是“创建短信”

“联系人列表”将从您的 Outlook 联系人中读取,只显示那些提供了移动电话号码的联系人。您点击某一个联系人,我们把这个联系人加入“收信人手机号码”的编辑框中。

 

本事件主要的事情就是,弹出一个“发送短信”的对话框。并取出联系人中设置了移动号码的。

 

其他的细节我们就不再介绍了,介绍一下默认 Outlook 联系人的获取问题:

首先我们通过

Set olContacts = g_oNS.GetDefaultFolder(olFolderContacts).Items

获得默认的联系人文件夹的 Items 集合。

然后,用

For Each olContact In olContacts

遍历这个 Items 集合。这个集合中的每一个对象都应该是一个“ Outlook.ContactItem Item 对象。所以我们可以获得这个 Item 对象的显示名称和移动手机号码。

我们只显示那些拥有移动手机号码的联系人。

代码如下所示:

' 准备取出联系人中带有移动号码的作为收信人 :

    '

    Dim olContacts As Outlook.Items

    Dim olContact As Outlook.ContactItem

    '

    ' GetDefaultFolder 方法基于 FolderType 参数返回默认的文件夹

    ' (例如, olFolderInbox 常量将“收件箱”文件夹返回给当前登录的用户)。

    ' 我们现在选择进入的是:

    '    包含 ContactItem 对象和 DistListItem 对象的“联系人”文件夹 (olFolderContacts)

     Set olContacts = g_oNS.GetDefaultFolder(olFolderContacts).Items

    frmMenuMain.listContact.Clear

   

    Dim nIndex As Integer

    Dim szContactItem As String

    nIndex = 0

    On Error Resume Next

    ' 遍历每一个联系人:

    For Each olContact In olContacts

        If Len(olContact.MobileTelephoneNumber) = 11 Then

            ' 联系人的显示名称:

            szContactItem = Replace(olContact.FileAs, "[", "")

            szContactItem = Replace(szContactItem, "]", "")

            ' 联系人的移动号码:

            frmMenuMain.listContact.AddItem szContactItem & "[" & _

                                            olContact.MobileTelephoneNumber & "]", nIndex

            nIndex = nIndex + 1

        End If

    Next

    On Error GoTo 0

 

 

[ 版权声明:

第二章部分文字引用自《 Programming Microsoft Outlook and Exchange 》一书,该书作者 Thomas Rizzo ,特此声明 ]

 

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



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


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


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

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

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

【本文对您有帮助就好】

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

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