科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件将 Pocket Outlook 数据集成至基于 Microsoft .NET Compact Framework 的应用程序

将 Pocket Outlook 数据集成至基于 Microsoft .NET Compact Framework 的应用程序

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

学习 InTheHand Pocket Outlook .NET 组件的使用方法。

作者:Larry Roof 来源:MSDN 2007年9月1日

关键字: Pocket Outlook 集成 应用程序

  • 评论
  • 分享微博
  • 分享邮件

简介

Microsoft® Pocket Outlook 是一组应用程序,作为与每个 Pocket PC 捆绑在一起的软件的一部分包含在其中。这组应用程序包括日历、联系人、收件箱、备注和任务应用程序。

虽然就其功能而言,这些应用程序能够完整且良好地独立运行,但它们更适合于与其更大、更著名的桌面等效程序 Microsoft Outlook 结合使用。位于这两个 PIM 应用程序平台之间的是 ActiveSync,它的固有职责就是处理 Microsoft Outlook 与 Pocket Outlook 应用程序之间的数据同步。

从开发的角度来看,Pocket Outlook 提供了两种功能。首先,它提供了一个具体数据的储备库:联系人、约会和任务。其次,它带有自动同步功能,使您完全不必担心这些数据如何在设备及其关联的个人计算机之间移动。

 

Pocket Outlook 对象模型

应用程序通过 Pocket Outlook 对象模型来访问 Pocket Outlook 数据,即通常所称的 POOM。.该库基于 COM,它提供了一个对象层次结构,从而简化了创建、修改和显示约会、任务和联系人的过程。

问题是,不同于 Microsoft eMbedded Visual C++® 或 Microsoft eMbedded Visual Basic®,针对 .NET Compact Framework 的应用程序本身不具有对 COM 库的访问权限,如 POOM。

对于所有 Microsoft .NET Compact Framework 应用程序要访问 COM 的情形,解决办法是创建一个非 COM 动态链接库,即 DLL。这个 DLL 充当 .NET Compact Framework 应用程序和 COM 对象间的中间角色。.该 DLL 是使用 eMbedded Visual C++ 编写的,正如前面所述,后者可以直接访问 COM 对象,包括 POOM。该 DLL 公开一个标准的 .NET Compact Framework 友好接口,这个接口反过来可能是来自应用程序的 PInvoked。

好了,如果此刻您还拿不准的话,说明这不是一个简单的过程。它要求要对 eMbedded Visual C++、Pocket Outlook 对象模型以及从 .NET Compact Framework 应用程序创建 DLL 和 PInvoking DLL 非常熟悉。如果花费足够的时间和精力,您有可能凭借自己的力量完成这些工作。幸运的是,有两种辅助工具可以大大缩短这一过程:GotDotNet Web 站点上的 POOM 示例以及由 InTheHand 提供的 Pocket Outlook .NET 组件。

POOM 示例

POOM 示例演示了如何创建使用 eMbedded Visual C++ 编写的 DLL。学习如何从基于 .NET Compact Framework 的应用程序调用该 DLL。尽管该示例的功能比较有限(仅提供对联系人的访问),但它确实说明了从基于 .NET Compact Framework 的应用程序中利用 POOM 这一方法背后的要点和概念。

该示例的一个缺点是它完全使用 C—(C++ 或 C#)编写。将 .NET CF 组件转换到 Visual Basic .NET 不是一项普通的任务,而将 C++ DLL 转换到任何其他对象都是不可取的。

可以下载该 POOM 示例

InTheHand 的 Pocket Outlook .NET

.NET CF 开发人员可利用的第二个可选工具是来自 InTheHand 的 Pocket Outlook .NET 组件。InTheHand 是一家专门研究 .NET Compact Framework. 的软件开发商。Pocket Outlook .NET 是一组 .NET Compact Framework 类,对 Pocket Outlook 的约会、联系人以及任务功能具有完全的读写访问权限。

不同于 GotDotNet 示例应用程序,Pocket Outlook .NET 是库 DLL,可添加至您的 .NET Compact Framework 项目,提供健壮的对象层次结构。这可以极大地简化将 POOM 合并到应用程序中的过程。

Pocket Outlook .NET 库支持数据绑定,因此您可以使用标准的 .NET Compact Framework 组件(例如 DataGrid 和 ComboBox)快速建立启用应用程序的 PIM。

从我的观点来看,Pocket Outlook .NET 是一种在您需要使用 Pocket Outlook 数据时可以采用的方法。它易于使用,能够提供正确的功能集,并且价格合理(即使对最小型的开发企业也是如此)。这是一个很棒的产品。实际上,本白皮书其余部分的所有示例和教程都利用了 Pocket Outlook .NET。

有关该产品的详细信息,请参阅 www.inthehand.com

 

从 .NET Compact Framework

访问 POOM

正如我之前所述,有两种方法可用于从 .NET Compact Framework 访问 POOM。第一种方法涉及到创建自己的本机代码 DLL。详细介绍该方法超出了本白皮书的范围,因为它太复杂了。

第二种方法是利用来自 InTheHand 的 Pocket Outlook .NET 组件。下面的所有示例和教程都利用了该组件。您需要下载并安装该组件,以便理解或利用本白皮书其余部分所演示的任何技术。

使用 Pocket Outlook .NET 组件

下载并安装完 Pocket Outlook .NET 组件后,需要执行几个步骤以在基于 .NET Compact Framework 的应用程序内使用该组件:

1.

向 Pocket Outlook .NET 组件添加引用

2.

导入 Pocket Outlook 命名空间

3.

定义 OutlookApplication 对象

向 Pocket Outlook .NET 组件添加引用

要完成这一首要步骤,请执行下列操作:

1.

打开项目,在解决方案资源管理器窗口中,用鼠标右键单击 References 文件夹。

2.

从弹出菜单中选择 Add Reference?.?.?。

3.

将显示 Add Reference 对话框。从该对话框顶部的列表中,选择 InTheHand.PocketOutlook。

4.

单击 Select 按钮。InTheHand.PocketOutlook 组件将被添加到该对话框底部的 Selected Components 窗口中,如图 1 所示。

5.

单击 OK 按钮,就会将该引用添加到项目中。

inthehandpoom_fig01

1. Pocket Outlook .NET 组件添加引用

导入 Pocket Outlook 命名空间

需要执行的第二步是在窗体模块的顶部添加一个 Imports 语句。要完成该操作,请执行下列步骤:

1.

打开窗体的代码窗口。

2.

导航到代码窗口的顶部。

3.

向模块中添加如清单 1 中所示的一行代码。

清单 1. 导入 Pocket Outlook 命名空间。

Imports InTheHand.PocketOutlook

定义 OutlookApplication 对象

您需要执行的第三步是为 OutlookApplication 对象声明一个变量。该对象是 Pocket Outlook 对象模型的接口。必须始终将其包含在应用程序中。

清单 2 提供了一个为该对象声明一个变量的示例。通常情况下,该声明将发生在应用程序的模块级或项目级,以便能够在较大范围内使用 OutlookApplication。

清单 2. 声明 OutlookApplication 对象变量

[at the module level]
Dim poApplication As New OutlookApplication

当该行代码执行时,应用程序将自动登入 Pocket Outlook 数据源。与直接使用 POOM(此时,在执行任何任务之前都需要登录)不同,InTheHand Pocket Outlook .NET 组件为您执行该步骤。

获取 Pocket Outlook .NET 组件上的帮助

Pocket Outlook .NET 组件的安装软件包包括标题为“对象模型文档”的帮助文件。安装过程将创建指向该文档的快捷方式。要访问该文档,请执行下列步骤:

1.

单击 Start 菜单。

2.

从 Start 菜单中选择 Programs。

3.

从 Programs 中选择 InTheHand。

4.

从 InTheHand 中选择 Pocket Outlook .NET 包装。

5.

从 Pocket Outlook .NET 包装选择指向“对象模型文档”的快捷方式。

该帮助系统概述了通过 Pocket Outlook .NET 组件提供的对象层次结构。它并不适合作为方法指南,而只能充当参考资料。如果您要寻找方法指南资料,则本白皮书的其余部分将非常适合您,能够从如何使用 Pocket Outlook 任务开始。

 

使用任务

Pocket Outlook .NET 组件提供使用 Pocket Outlook 数据的三个方面的功能:任务、联系人和约会。我们将从任务开始讨论该组件。

从开发人员的观点来看,可以出于多种目来使用任务。例如,可以在维护应用程序内使用任务来记录要完成的后续工作。在信息传递系统中,可以使用任务来标注下一次要传递的项目。CRM 应用程序可以记录要为特定客户执行的步骤。

通过 InTheHand 的 Pocket Outlook .NET 组件提供的任务功能的核心是 Tasks 属性和 Task 对象。接下来,我们将详细讨论这些项目中的每一个。

Tasks 属性

OutlookApplication 对象的 Tasks 属性提供了对驻留在设备上的任务集合的访问。实际上,Tasks 属性是通过 POOM 提供的 Tasks 文件夹。该属性链接到包含所有任务的项目集合。

我们将在本节后面的部分查看几个示例,其中 Tasks 属性及其项目集合被用来检索任务。

Task 对象

需要通过 Task 对象来使用各个任务。该对象的常用属性显示在表 1 中。该 Task 对象的常用方法显示在表 2 中。

表 1. Task 对象的常用属性
属性 说明

Body

任务所附备注的文本

Categories

分配给任务的类别

Complete

任务是否已完成

DateCompleted

任务的完成日期

DueDate

任务的截止日期

Importance

任务的重要性

IsRecurring

任务是一次性的还是反复发生的

Oid

任务的唯一标识符

ReminderSet

是否就该任务提醒用户

StartDate

任务的开始日期

Subject

任务的主题

表 2. Task 对象的常用方法
方法 说明

Copy

创建现有任务的副本

Delete

删除任务

Display

使用本机 Task 接口显示任务

Save

将修改保存到任务

虽然上述表格可以作为很好的参考资料,但下面提供的一组实用示例将详细介绍经常执行的与任务相关的操作。

检索所有任务

涉及任务的最常见功能之一是检索任务。可以用多种方式检索任务:

检索所有任务的集合

检索所有任务的子集

检索单个任务

我们将首先考虑如何检索所有任务,因为这是一种常用的方法,并且是检索任务的最简单方法。清单 3 提供了一个简单示例,该示例检索驻留在某个设备上的所有任务。

清单 3. 检索所有任务

Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication
Dim myTasks As OutlookItemCollection

Private Sub btnLoad_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnLoad.Click

' Retrieve all of the tasks.
  myTasks = poApplication.Tasks.Items

End Sub

该示例的主要部分包括:

Imports 语句,该语句必须位于模块的顶部

OutlookApplication 对象的声明语句

OutlookItemCollection 对象的声明,该对象可以保存任何 Outlook 项目的集合。在本例中,它将保存任务集合。

将任务集合从 OutlookApplication 对象 poApplication 加载到 OutlookItemCollection myTasks 中。

此时,集合 myTasks 包含一组任务对象,分别对应于驻留在测试设备上的各个任务。可以对该集合进行循环处理以传播 ListBox 或 ComboBox,还可以查看特定任务信息或者引用该集合内的特定任务。

检索所选任务

有时需要检索特定任务。这可能是任务子集,甚至也可能是单个任务。使用 Items 集合的 Restrict 方法可以轻松地做到这一点。

清单 4 演示了如何检索任务子集。该示例仅检索那些类别为“demo”的任务。

清单 4. 检索所选任务
Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication
Dim myTasks As OutlookItemCollection

Private Sub btnSelect_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnSelect.Click
  
  Dim strCategory As String
  Dim strQuery As String

' Retrieve the selected tasks.
  strCategory = "demo"
  strQuery = "[Categories] = " & ControlChars.Quote & strCategory & _
    ControlChars.Quote
  myTasks = poApplication.Tasks.Items.Restrict(strQuery)

End Sub

大部分准备工作与检索所有任务所需的准备工作完全相同。仍然需要添加 Imports 语句,声明 OutlookApplication 对象变量,以及声明 OutlookItemCollection 变量。

位于清单 4 底部附近的代码用于仅选择我们感兴趣的任务。我们生成了一个查询字符串,它只是一个 SQL SELECT 语句的 WHERE 部分。该查询字符串随后用在 Restrict 方法中,以便只检索我们感兴趣的任务。

可以根据通过 Task 对象提供的任意属性来限制任务。

显示任务

通过 POOM 提供的绝妙功能之一是能够在 Pocket Outlook 数据的本机应用程序界面中显示这些数据。也就是说,其显示效果就像用户已经进入 Task 应用程序并选择查看特定任务一样。

POOM 包括一种称为 Display 的方法,该方法通过 Pocket Outlook .NET 组件提供。清单 5 演示了如何使用该方法。

清单 5. 显示任务

Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication
Dim myTasks As OutlookItemCollection

Private Sub btnDisplay_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnDisplay.Click
  
  Dim myTask As Task

' Retrieve all of the tasks.
  myTasks = poApplication.Tasks.Items

' Display the first task.
  myTask = myTasks.Item(0)
  myTask.Display()

End Sub

与前面的两个示例一样,首先要添加 Imports 语句,并声明 OutlookApplication 和 OutlookItemCollection 变量。

在清单 5 的底部,您将看到我们首先检索所有任务。从该任务集合中,我们将单个任务(即第一个任务)提取到 Task 对象变量中。该对象提供了 Display 方法,该方法随后被调用以显示所选任务。

添加任务

添加新任务的过程包含三个步骤。首先,需要创建一个新任务。其次,新任务需要进行配置。第三,新任务需要保存。清单 6 演示了如何添加任务。

清单 6. 添加任务

Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication

Private Sub btnAdd_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnAdd.Click
  
  Dim myTask As Task

' Create a new task.
  myTask = poApplication.CreateTask

' Configure the task.
  With myTask
    .Body = "This is a sample task."
    .Categories = "demo"
    .DueDate = Today.Date
    .Importance = Importance.High
    .ReminderOptions = ReminderOptions.Dialog
    .ReminderSet = True
    .StartDate = Today.Date
    .Subject = "sample task"

' Finally, save the task.
    .Save()
  End With

End Sub

与前面的所有示例一样,首先要添加 Imports 语句,并声明 OutlookApplication 和 OutlookItemCollection 变量。

在清单 6 的底部,您将看到我描述过的三个步骤。首先,使用 OutlookApplication 对象的 CreateTask 方法来创建我们的新任务。其次,加载该新任务的属性。第三,调用 Task 对象的 Save 方法来保存该任务。

修改任务

修改任务与添加任务类似,只不过这次不是创建新任务,而是将现有任务加载到 Task 对象中。清单 7 说明了如何修改任务。

清单 7. 修改任务

Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication
Dim myContacts As OutlookItemCollection

Private Sub btnModify_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnModify.Click
  
  Dim myTask As Task

' Retrieve all of the tasks.
  myContacts = poApplication.Tasks.Items

' Modify the first task.
  myTask = myTasks.Item(0)
  With myTask
    .Body = "This is updated content."
    .Save()
  End With

End Sub

这一次仍然要首先添加 Imports 语句,并声明 OutlookApplication 和 OutlookItemCollection 变量。在清单 7 的底部,您将看到在何处首先检索该任务(与所有其他任务一起),然后再将其加载到 Task 对象中。此时,您就可以修改该 Task 对象的任何属性了。通过调用该 Task 对象的 Save 方法,完成修改过程。

本节中演示的所有示例都包含在可供下载的 Tasks 项目中。您需要从 InTheHand 下载并安装 Pocket Outlook .NET 组件,以使用该示例。

 

使用联系人

对开发人员有用的第二种 Pocket Outlook 数据类型是联系人。联系人为开发人员提供了各种应用机会。它们提供了一种将联系人数据合并到移动应用程序的简单方法,从而避免了开发自己的联系人代码所需的开销。

像任务一样,联系人也提供了 Categories 属性,该属性可用来标识特别适用于您的应用程序的联系人。通过 Contacts 属性和 Pocket Outlook .NET 组件的 Contact 对象来访问联系人。下面分别介绍了这些项目。

Contacts 属性

OutlookApplication 对象的 Contacts 属性提供了对驻留在设备上的联系人集合的访问。该属性提供了到 POOM(联系人驻留在其内部)内的 Contacts 文件夹的接口。

本节中提供的几个示例演示了在使用联系人时,如何将 Contacts 属性及其项目集合一起使用。

Contact 对象

与联系人本身有关的所有工作都是通过 Contact 对象处理的。表 3 显示了该对象的常用属性。表 4 显示了 Contact 对象的常用方法。

表 3. Contact 对象的常用属性
属性 说明

Body

联系人所附带的备注

BusinessAddressCity

联系人地址的城市部分

BusinessAddressState

联系人地址的州(省/自治区)部分

BusinessAddressStreet

联系人地址的街道部分

BusinessFaxNumber

联系人的传真号码

BusinessTelephoneNumber

联系人的办公电话号码

Categories

分配给联系人的类别

CompanyName

联系人的公司名称

EmailAddress1

联系人的电子邮件地址

FileAs

联系人的归档方式;通常按姓氏排序

MobileTelephoneNumber

联系人的移动电话号码

这只是 Contact 对象所提供属性的一个小子集。表 3 中列出的属性是我已经发现在普通移动业务应用程序中最为有用的属性。您的应用程序可能会从其余属性的使用中受益,因此,您应该通过 Pocket Outlook .NET 文档资料来熟悉完整的属性列表。

表 4. Contact 对象的常用方法
方法 说明

Copy

创建现有联系人的副本

Delete

删除联系人

Display

使用本机 Contact 接口显示联系人

Save

将修改保存到联系人

尽管您将发现这两个表格都可用作参考,但以下几个部分以及相应的示例将提供快速入门方法,以便您将联系人数据合并到应用程序中。

检索所有联系人

尽管您的应用程序通常不会检索所有联系人的列表(除非您要创建一个完善的 Contact 应用程序),但在本节的开头我仍然要向您说明如何实现该任务。就像任务一样,可以用多种方式检索联系人:

检索所有联系人的集合

检索所有联系人的子集

检索单个联系人

清单 8 演示了如何检索所有联系人。请注意,根据驻留在设备上的联系人数量的不同,这可能会产生相当大的集合。

清单 8. 检索所有联系人

Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication
Dim myContacts As OutlookItemCollection

Private Sub btnLoad_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnLoad.Click

' Retrieve all of the contacts.
  myContacts = poApplication.Contacts.Items

End Sub

该示例的主要部分包括:

Imports 语句,该语句必须位于模块的顶部

OutlookApplication 对象的声明语句

OutlookItemCollection 对象的声明,该对象保存了任何 Outlook 项目的集合。在该示例中,它是联系人集合。

将联系人集合从 OutlookApplication 对象 poApplication 加载到 OutlookItemCollection myContacts 中。

此时,集合 myContacts 包含一组联系人对象,分别对应于驻留在测试设备上的各个联系人。像任何集合一样,可以对该集合进行循环处理来访问各个联系人以及查看特定的联系人信息。

检索联系人的子集

对于联系人,更常见的情况是需要检索所有联系人的子集,而不是检索所有联系人。该子集可能只包含那些以字母“A”开头的联系人,甚至可能限定为单个联系人。

使用 Items 集合的 Restrict 方法,可以很方便地检索联系人的子集。清单 16 演示了如何使用该方法。在该示例中,只返回那些以字母“A”开头的联系人。

清单 9. 检索联系人的子集

Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication
Dim myContacts As OutlookItemCollection

Private Sub btnSelect_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnSelect.Click

  Dim strA As String = "A"
  Dim strB As String = "B"
  Dim strQuery As String

' Retrieve contacts that begin with the letter A.
  strQuery = "[FileAs] >= " & ControlChars.Quote & strA & _
    ControlChars.Quote
  strQuery = strQuery & " AND [FileAs] < " & strB & _
     cmbPrefix.Items(cmbPrefix.SelectedIndex + 1) & ControlChars.Quote

  myContacts = poApplication.Contacts.Items.Restrict(strQuery)

End Sub

大部分准备工作与检索所有联系人所需的准备工作完全相同。仍然需要 Imports 语句,并且声明 OutlookApplication 和 OutlookItemCollection 这两个对象。

这些有趣的代码显示在清单 9 的底部。这里我们构建了一个查询字符串,该字符串限制仅返回那些以字母“A”开头的联系人。在将该字符串应用于 Restrict 方法时,仅提供我们感兴趣的那些联系人。

可以使用通过 Contact 对象提供的任何属性来限制联系人。虽然通常是使用 FileAs 属性,但并未限制您只能使用该属性。

显示联系人

正如您已经在任务的使用方法中看到的,POOM 提供了通过应用程序方便地访问和利用数据类型的本机应用程序界面的功能。用户所看到的联系人显示在典型的联系人界面中。

该功能是通过 Contact 对象的 Display 方法提供的。清单 10 显示了一个使用该技术的示例。

清单 10. 显示联系人
Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication
Dim myContacts As OutlookItemCollection

Private Sub btnDisplay_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnDisplay.Click
  
  Dim myContact As Contact

' Retrieve all of the contacts.
  myContacts = poApplication.Contacts.Items

' Display the first contact.
  myContact = myContacts.Item(0)
  myContact.Display()

End Sub

像前面的两个联系人示例一样,需要在模块中添加 Imports 语句以及 OutlookApplication 和 OutlookItemCollection 这两个变量的声明。

在清单 10 的底部,您将看到我们首先检索了所有联系人。您可以使用联系人的子集甚至单个联系人作为起点。我选择在此演示所有联系人的原因在于它是最容易理解的。

从该联系人集合中,我们将单个联系人(第一个联系人)提取到它自己的 Contact 对象中。我们就是通过该 Contact 对象来访问 Display 方法的,该方法随后被调用以显示所选的联系人。

添加联系人

添加联系人的过程包含三个步骤。首先,创建新的联系人。其次,配置该联系人。第三,保存该联系人。清单 11 演示了如何添加联系人。

清单 11. 添加联系人

Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication

Private Sub btnAdd_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnAdd.Click
  
  Dim myContact As Contact

' Create a new contact.
  myContact = poApplication.CreateContact

' Configure the contact.
  With myContact
    .Birthday = CDate("01/01/1960")
    .Body = "This is a sample contact."
    .BusinessTelephoneNumber = "888-555-0001"
    .Categories = "demo"
    .CompanyName = "Acme"
    .Email1Address = "joe.acme@acme.com"
    .FileAs = "Acme, Joe"
    .FirstName = "Joe"
    .LastName = "Acme"
    .Title = "President"

' Finally, save the contact.
    .Save()
  End With

End Sub

与前面的所有联系人示例一样,首先需要添加 Imports 语句,并声明 OutlookApplication 和 OutlookItemCollection 变量。

在清单 11 的底部,您将看到我描述过的三个步骤。首先,调用 OutlookApplication 对象的 CreateContact 方法来创建新联系人。其次,对新联系人的属性进行配置。第三,调用 Contact 对象的 Save 方法来保存该联系人。

修改联系人

修改联系人与添加联系人类似,只不过这次不是创建新联系人,而是从现有联系人加载 Contact 对象。清单 12 演示了这一过程。

清单 12. 修改现有联系人

Imports InTheHand.PocketOutlook

[at the module level]
Dim poApplication As New OutlookApplication
Dim myContacts As OutlookItemCollection

Private Sub btnModify_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnModify.Click
  
  Dim myContact As Contact

' Retrieve all of the contacts.
  myContacts = poApplication.Contacts.Items

' Modify the first contact.
  myContact = myContacts.Item(0)
  With myContact
    .BusinessTelephoneNumber = "888-555-0001"
    .Save()
  End With

End Sub

与前面的所有联系人示例一样,我们首先添加 Imports 语句,并且声明 OutlookApplication 和 OutlookItemCollection 变量。在清单 19 的底部,您会发现首先检索联系人的位置。在该示例中,检索了所有联系人,但只有第一个联系人被加载到 Contact 对象中。从这里开始,您可以随意修改该 Contact 对象的任何属性。我们通过调用该 Contact 对象的 Save 方法,完成了修改过程。

本节中演示的所有示例都包含在可供下载的 Contacts 项目中。您需要从 InTheHand 下载并安装 Pocket Outlook .NET 组件,以使用该示例。

 

小结

存储在 Pocket Outlook 内的数据为开发人员提供了大量的机会。从使用基于 .NET Compact Framework 的应用程序编写的移动解决方案中,可以利用这一包含联系人、约会和任务数据的储备库。

应用程序通过 Pocket Outlook 对象模型访问 Pocket Outlook 数据。要访问这一基于 COM 的库,您必须创建一个非 COM 动态链接库,或者求助于第三方组件,如 InTheHand 的Pocket Outlook .NET。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章