Pocket Outlook 增强功能
Pocket Outlook 向用户和应用程序开发人员提供了易于使用的 PIM。将 Pocket Outlook 集成到您的应用程序中可以同时使您的应用程序和它的用户获益。用户通过具有一致的 PIM 体验和数据获益,而无论他们是直接与 Pocket Outlook 交互,还是通过您的应用程序与其交互。应用程序通过有机会立即合并用户的完整 PIM 数据而获益。
为了进一步简化应用程序与 Pocket Outlook 交互的方式以及为应用程序提供合并更为丰富的 Pocket Outlook 交互的机会,Pocket Outlook 向本机和托管开发人员提供了多种新功能。
联系人选择对话框
正如它的名称所暗示的那样,联系人选择对话框使应用程序能够显示功能齐全的联系人选择对话框 — 就像 Pocket Outlook 显示一样。该对话框提供了可供用户选择整个联系人或单个联系人属性(如电话号码或电子邮件地址)的筛选功能。当该对话框显示时,用户可以直接选择联系人,或者可以输入联系人姓名的一部分,后者会自动筛选列表以便只显示匹配的姓名。该对话框还可以选择支持用户添加新联系人。本机开发人员可以通过 ChooseContact 函数使用联系人选择对话框;托管开发人员需要使用 ChooseContactDialog 类。
下面的示例演示了如何从 C++ 和 C# 中使用联系人选择对话框。在每个示例中,应用程序都显示限制用户选择现有联系人的对话框。为了使示例保持简单,应用程序随后在 MessageBox 中显示所选联系人的姓名。
下面的代码演示 C++ 中的联系人选择对话框。
|
下面的代码演示 C# 中的联系人选择对话框。
|
图 3 说明了所显示的对话框。

图 3. 新的 ChooseContactDialog 联系人选择器类
事件通知
由于引入了事件通知,Windows Mobile 5.0 现在使应用程序可以比以往任何时候都更密切地与 Pocket Outlook 合作。通过事件通知,本机和托管应用程序都可以监视 Pocket Outlook 文件夹内部的成员添加、删除和修改。
要注册以接收这些通知,本机应用程序必须访问感兴趣的 Folder 对象上的 IItem 接口,然后调用 IItem.SetProp 方法以便将属性 PIMPR_FOLDERNOTIFICATION 设置为表 7 中的值之一。
| 表 7. Pocket Outlook 文件夹通知标志 | |
| 通知标志 | 说明 |
|
PIMFOLDERNOTIFICATION_LOCAL |
在从当前进程中进行更改时,向应用程序发送通知。 |
|
PIMFOLDERNOTIFICATION_REMOTE |
在从其他进程中进行更改时,向应用程序发送通知。 |
|
PIMFOLDERNOTIFICATION_ALL |
在从任何进程中进行更改时,向应用程序发送通知。 |
当更改发生时,消息被发送到在对 IPOutlookApp.Logon 的调用中注册的窗口。表 8 显示可能的消息。
| 表 8. Pocket Outlook 通知消息 | |
| 通知消息 | 说明 |
|
PIM_ITEM_CREATED_LOCAL |
该进程创建了一个 PIM 项。 |
|
PIM_ITEM_DELETED_LOCAL |
该进程删除了一个 PIM 项。 |
|
PIM_ITEM_CHANGED_LOCAL |
该进程更改了一个 PIM 项。 |
|
PIM_ITEM_CREATED_REMOTE |
另一个进程创建了一个 PIM 项。 |
|
PIM_ITEM_DELETED_REMOTE |
另一个进程删除了一个 PIM 项。 |
|
PIM_ITEM_CHANGED_REMOTE |
另一个进程更改了一个 PIM 项。 |
托管应用程序使用标准委托机制来处理由 AppointmentCollection、ContactCollection 和 TaskCollection 公开的 ListChanged 事件。借助于相应文件夹中的 Items 属性可以最为容易地访问这些集合。下面的示例演示如何注册委托以处理对约会集合所做的更改。
|
除了跟踪对某个文件夹内的所有对象的更改以外,托管开发人员还可以获得有关对任何特定 Appointment、Contact 或 Task 所做更改的通知。这些类中的每个属性都具有相应的事件。例如,要获得有关对 Appointment 的 Start 属性所做更改的通知,请处理 Appointment.StartChanged 事件。要获得有关对 Contact 的 BusinessTelephoneNumber 所做更改的通知,请处理 Contact.BusinessTelephoneNumberChanged 事件。
自定义属性
很多应用程序不仅使用 Pocket Outlook 提供的数据,而且还需要扩充标准 Pocket Outlook 对象模型以跟踪附加数据。过去,那些希望自己的应用程序这么做的开发人员必须显式管理扩充数据的存储及其与 Pocket Outlook 对象的相互关系。Windows Mobile 5.0 通过引入自定义属性消除了手动管理扩充内容的需要。
自定义属性使本机和托管应用程序都可以将自定义数据直接与 Appointment、Contact 和 Task 对象相关联。Pocket Outlook 自动将这一关联数据存储到它的可以通过相关联的 Appointment、Contact 或 Task 对象直接访问的数据存储区中。自定义属性可以是从简单类型(如 int)到复杂的自定义对象的任意类型。要访问自定义属性,本机应用程序开发人员可以使用 IItem.GetProps/IItem.SetProps;托管开发人员可以使用由 Appointment.Properties、Contact.Properties 和 Task.Properties 公开的 PimPropertySet 属性。
| 共12页: 上一页 [1] [2] [3] [4] 5 [6] [7] [8] [9] [10] [11] [12] 下一页 | ||
|
|
|||
| · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · CISSP认证成长之路 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 |
· 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |