- 浏览: 67723 次
- 性别:
- 来自: 湖南
最新评论
-
liliang0504:
...
关于时间段数据的设计 -
addday:
我正在用呢。
oracle驱动升级后,Atomikos数据源配置方式。 -
hackpro:
哥们,你有测试成功吗?
oracle驱动升级后,Atomikos数据源配置方式。 -
addday:
用户组与角色组合,才能做到真正的业务系统的权限控制。
RBAC 权限 基于角色的权限控制 -
addday:
用户组是用来指定业务范围的,角色是有继承,但它是用来定义功能范 ...
RBAC 权限 基于角色的权限控制
这篇文章主要讲述:Microsoft.WindowsMobile.PocketOutlook命名空间下的五个类:
1.OutlookSession
2.AppointmentCollection, Appointment
3.ContactCollection, Contact
4.SmsMessage
5.EmailMessage
该命名空间主要针对PocketOutlook中的所提供的Appointment(约会), Task(计划), Contact(联系人), 短信, 邮件的操作。
注:在WM5.0系统中已提供该命名空间,即CF2.0下也提供支持。
下面就开始逐个介绍。首先运行下程序效果。
OutlookSession是取得PocketOutlook中的所有信息的一个对象, 该对象提供访问PocketOutlook对象模型的一个入口。通过该对象, 可以操作PocketOutlook所提供的所有操作。
当点击Appointments时, 取得已存在的Appoint, 并添加一个新的Appoint.
通过OutlookSession.Appointments.Item得到AppointmentCollection(所有集合). 该集合内存放所有Appointment.
这些Appointment按照时间的顺序排列. 当然, 你也可以指定按什么排序. 使用Sort方法, 并指定排序字段即可.
AppointmentCollection的AddNew方法:在集合对象中创建一个新Appointment, 并将该对象返回, 类似于DataRow.
返回新对象后, 对该对象的属性进行赋值后, 通过该对象的Update方法, 就能自动更新集合内信息.
代码如下:
1 OutlookSession session = new OutlookSession();
2
3 foreach (Appointment app in session.Appointments.Items)
4 {
5 this.listBox1.Items.Add("ItemId: " + app.ItemId);
6 this.listBox1.Items.Add("Subject: " + app.Subject);
7 this.listBox1.Items.Add("AllDayEvent: " + app.AllDayEvent.ToString());
8 this.listBox1.Items.Add("Body: " + app.Body);
9 this.listBox1.Items.Add("BusyStatus: " + app.BusyStatus.ToString());
10 this.listBox1.Items.Add("Location: " + app.Location);
11 this.listBox1.Items.Add("");
12 }
13
14 Appointment appAdd = session.Appointments.Items.AddNew();
15 appAdd.Subject = "Add Now";
16 appAdd.Location = "Shanghai";
17 appAdd.Start = System.DateTime.Now.AddHours(1);
18 appAdd.End = System.DateTime.Now.AddHours(2);
19 appAdd.BusyStatus = BusyStatus.Busy;
20 appAdd.Update();
2
3 foreach (Appointment app in session.Appointments.Items)
4 {
5 this.listBox1.Items.Add("ItemId: " + app.ItemId);
6 this.listBox1.Items.Add("Subject: " + app.Subject);
7 this.listBox1.Items.Add("AllDayEvent: " + app.AllDayEvent.ToString());
8 this.listBox1.Items.Add("Body: " + app.Body);
9 this.listBox1.Items.Add("BusyStatus: " + app.BusyStatus.ToString());
10 this.listBox1.Items.Add("Location: " + app.Location);
11 this.listBox1.Items.Add("");
12 }
13
14 Appointment appAdd = session.Appointments.Items.AddNew();
15 appAdd.Subject = "Add Now";
16 appAdd.Location = "Shanghai";
17 appAdd.Start = System.DateTime.Now.AddHours(1);
18 appAdd.End = System.DateTime.Now.AddHours(2);
19 appAdd.BusyStatus = BusyStatus.Busy;
20 appAdd.Update();
效果如下:
Appoint没有添加时的效果.
Appointment与AppointmentCollection也有很多事件, 这里举一个AppointmentCollection的ListChanged事件.
当AppointmentCollection集合中的任一Appoint发生变化(新增, 修改, 删除)时, 该事件即会被触发.
代码如下:
1 void Items_ListChanged(object sender, ListChangedEventArgs e)
2 {
3 //this.listBox1.Items.Add("Type Name: " + sender.GetType().FullName);
4 AppointmentCollection appCol = (AppointmentCollection)sender;
5 if (e.ListChangedType == ListChangedType.ItemChanged)
6 {
7 this.listBox1.Items.Add("ItemId: " + appCol[e.NewIndex].ItemId);
8 this.listBox1.Items.Add("Subject: " + appCol[e.NewIndex].Subject);
9 this.listBox1.Items.Add("AllDayEvent: " + appCol[e.NewIndex].AllDayEvent.ToString());
10 this.listBox1.Items.Add("Body: " + appCol[e.NewIndex].Body);
11 this.listBox1.Items.Add("BusyStatus: " + appCol[e.NewIndex].BusyStatus.ToString());
12 this.listBox1.Items.Add("Location: " + appCol[e.NewIndex].Location);
13 this.listBox1.Items.Add("");
14 }
15 }
2 {
3 //this.listBox1.Items.Add("Type Name: " + sender.GetType().FullName);
4 AppointmentCollection appCol = (AppointmentCollection)sender;
5 if (e.ListChangedType == ListChangedType.ItemChanged)
6 {
7 this.listBox1.Items.Add("ItemId: " + appCol[e.NewIndex].ItemId);
8 this.listBox1.Items.Add("Subject: " + appCol[e.NewIndex].Subject);
9 this.listBox1.Items.Add("AllDayEvent: " + appCol[e.NewIndex].AllDayEvent.ToString());
10 this.listBox1.Items.Add("Body: " + appCol[e.NewIndex].Body);
11 this.listBox1.Items.Add("BusyStatus: " + appCol[e.NewIndex].BusyStatus.ToString());
12 this.listBox1.Items.Add("Location: " + appCol[e.NewIndex].Location);
13 this.listBox1.Items.Add("");
14 }
15 }
效果如下:
Subject为Add Now为添加的Appoint.
Contact对象, 通过OutlookSession的Contacts.Items得到ContactCollection.
访问方法与Appoint一致.在此, 只演示代码.
1 private void menuItem7_Click(object sender, EventArgs e)
2 {
3 OutlookSession session = new OutlookSession();
4
5 foreach (Contact contact in session.Contacts.Items)
6 {
7 this.listBox1.Items.Add("File As: " + contact.FileAs);
8 this.listBox1.Items.Add("Email1Address: " + contact.Email1Address);
9 this.listBox1.Items.Add("");
10 }
11
12 Contact contactAdd = session.Contacts.Items.AddNew();
13 contactAdd.FileAs = "Test Man";
14 contactAdd.FirstName = "Test";
15 contactAdd.LastName = "Man";
16 contactAdd.Email1Address = "Test@abs.com";
17 contactAdd.Update();
18 }
2 {
3 OutlookSession session = new OutlookSession();
4
5 foreach (Contact contact in session.Contacts.Items)
6 {
7 this.listBox1.Items.Add("File As: " + contact.FileAs);
8 this.listBox1.Items.Add("Email1Address: " + contact.Email1Address);
9 this.listBox1.Items.Add("");
10 }
11
12 Contact contactAdd = session.Contacts.Items.AddNew();
13 contactAdd.FileAs = "Test Man";
14 contactAdd.FirstName = "Test";
15 contactAdd.LastName = "Man";
16 contactAdd.Email1Address = "Test@abs.com";
17 contactAdd.Update();
18 }
效果如下:
Task, TaskCollection:看过上述的Appoint与Contact后, 相信大家也一定能够使用Task的. 使用方式完全一致.
Appoint, Contact, Task. 在OutlookSession中唯一标识符为ItemId. 可以在集合中通过ItemId来取得你需要的某一个内容.
并且它们可以创建除ItemId以外, 内容完全一致的对象, 这是完全存在的.
SmsMessage:短信对象.可以在构造函数时传入要发送的号码及内容, 也可以在创建完对象后对其属性进行修改.
该对象提供Send方法, 用于发送短信. 当然, 也可以通过OutlookSession的SmsAccount.Send方法发送, 这都是一样的.
注:短信不支持彩信功能, 只能发送文字信息. 当程序自己发送消息完后, 发送的消息并不会出现在短信的已发送栏里.这和邮件发送不一致的地方, 需了解. 另外, 微软的IDE(VS2008)中存在一个BUG, 就是访问SmsMessage对象的Body时, 显示提示居然说是只读的, 但其实是读写都可以的.
应该改为Gets Or Sets the SMS message's text body.
代码如下:
1 private void menuItem4_Click(object sender, EventArgs e)
2 {
3 SmsMessage smsMessage = new SmsMessage(strContract, strMessage);
4 smsMessage.RequestDeliveryReport = false;
5 //smsMessage.Send();
6
7 OutlookSession session = new OutlookSession();
8 this.listBox1.Items.Add("SmsAccount Name: " + session.SmsAccount.Name);
9 //this.listBox1.Items.Add("ItemID: " + smsMessage.ItemId.ToString());
10 session.SmsAccount.Send(smsMessage);
11
12 SmsMessage sms = new SmsMessage();
13 sms.Body = "Test";
14 sms.To.Add(new Recipient(strContract));
15 session.SmsAccount.Send(sms);
16 }
通过Call Emulator工具,取得短信.2 {
3 SmsMessage smsMessage = new SmsMessage(strContract, strMessage);
4 smsMessage.RequestDeliveryReport = false;
5 //smsMessage.Send();
6
7 OutlookSession session = new OutlookSession();
8 this.listBox1.Items.Add("SmsAccount Name: " + session.SmsAccount.Name);
9 //this.listBox1.Items.Add("ItemID: " + smsMessage.ItemId.ToString());
10 session.SmsAccount.Send(smsMessage);
11
12 SmsMessage sms = new SmsMessage();
13 sms.Body = "Test";
14 sms.To.Add(new Recipient(strContract));
15 session.SmsAccount.Send(sms);
16 }
EmailMessage:发送邮件对象.
如果没有设置好EmailAccounts, 是无法正常发送Email的.
代码如下:
1 private void menuItem5_Click(object sender, EventArgs e)
2 {
3 EmailMessage mail = new EmailMessage();
4 mail.To.Add(new Recipient("appleseeker@gmail.com"));
5 mail.Importance = Importance.High;
6 mail.Subject = "It is test mail";
7 mail.BodyText = "It is test mail";
8 mail.Attachments.Add(new Attachment(@"\flower.jpg"));
9
10 OutlookSession session = new OutlookSession();
11 if (session.EmailAccounts.Count > 0)
12 mail.Send(session.EmailAccounts[1]);
13 }
OutlookSession.EmailAccount中, 我访问集合中第2个元素的理由:2 {
3 EmailMessage mail = new EmailMessage();
4 mail.To.Add(new Recipient("appleseeker@gmail.com"));
5 mail.Importance = Importance.High;
6 mail.Subject = "It is test mail";
7 mail.BodyText = "It is test mail";
8 mail.Attachments.Add(new Attachment(@"\flower.jpg"));
9
10 OutlookSession session = new OutlookSession();
11 if (session.EmailAccounts.Count > 0)
12 mail.Send(session.EmailAccounts[1]);
13 }
因为当前是模拟器开发,所有该EmailAccounts中第1个元素是模拟器.只有后面的才是在模拟器上说设置的Mail帐户.
效果如下:
没有发送邮件时.
EmailMessage对象调用Send后,邮箱的邮件情况.
本文就PocketOutlook中的一些基本操作内容讲述完毕,改天会对如何操作PocketOutlook.MessageInterception命名空间作一下讲述,该空间提供消息拦截,起到过滤效果.
代码下载:SmartDeviceOutlookDemo_2008_03_24.rar
发表评论
-
架构交互图
2012-07-31 05:37 1022基于泛型后,架构将得到简化。 -
在WebService中传递SortedList, ListDictionary 和 Hashtab
2008-12-29 11:46 1152[size=x-small;]在WebService中传递So ... -
移动开发索引贴
2008-08-21 23:51 1197在该索引贴中,将我所有的移动开发文章做一个整理,希望对大家查看 ... -
ppc 程序,实现录像、拍照、图片选择、联系人选择
2008-08-21 23:44 2246这篇文章主要讲述:Microsoft.WindowsMobil ... -
ppc 程序,实现录音功能
2008-08-21 22:37 1137opennetcf对多媒体部分也有很好的封装,见下图,附源代码 ... -
ppc 程序自动生成快捷方式
2008-08-21 22:27 2246当 ppc程序不是通过cab安装上去,是直接复制上去时(绿色软 ... -
微软内部代码检查工具 StyleCop 最新版(Microsoft Source Analysis
2008-08-14 09:17 2745引言:SourceAnalysis (StyleCop)的终极 ... -
RockScroll 简约的 Visual Studio 代码缩略图插件
2008-08-14 09:14 1453RockScroll 是一个用于代替 VS 代码编辑器右侧滚动 ... -
C# rapi dll 引用方式,pda数据传输用
2008-08-12 13:25 4836[DllImport("rapi.dll" ... -
workflow学习笔记0
2008-07-31 12:02 1050了解到,基本是在视图中把工作流程图出来,再去流程图配置,再引入 ... -
C# 技巧备忘一
2008-07-15 16:34 979ViewData["CategoryID" ... -
使用linq to sql 通过数据库生成实体类及基本业务类
2008-07-15 09:58 2749sqlmetal /conn:server=".\m ... -
Developer Express gridview 显示行号
2008-06-17 17:37 1304private void displayL ... -
设置应用程序图标
2008-05-10 03:19 1264private void button1_Cl ... -
为RichTextBox控件添加上下文菜单
2008-05-10 03:18 1459private void Form1_Load(object ... -
如何从子窗体关闭程序主窗体窗口
2008-05-10 03:14 1756private void button1_Click(obje ... -
C# 中双击标题栏关闭WinForm程序
2008-04-28 12:04 2864很简单的一个C#中双击标题栏关闭WinForm程序,估计很多人 ...
相关推荐
PocketMail是一款应用程序,允许用户在PC上方便地收发短信,扩展了PPC设备的功能。 在描述中提到,“可以收发短信”,这意味着PocketMail提供了完整的短信服务,不仅限于接收,还支持发送短信。这为用户提供了更...
在这个“TCP消息收发程序 ppc pc”中,我们看到的是一个针对 PPC(个人数字助手,如早期的 Palm 或 Windows Mobile 设备)和 PC(个人计算机)之间进行TCP通信的示例程序。 这个程序包含了源代码,这意味着我们可以...
PPC是Personal Digital Assistant(个人数字助手)的缩写,它允许用户进行电话通话、收发邮件、浏览网页、运行应用程序等多种功能。 在描述中提到的“智能手机PC端管理工具”,是指可以与PPC手机配合使用的计算机...
【基本介绍】 智能手机PC端管理工具-For Windows Mobile 您可以:海量的娱乐生活软件免费下载,繁杂的手机功能轻松设置,重要的手机资料... 资料管理:联系人管理、电脑收发管理短信、定制日程、管理任务 媒体娱乐:
USB在PPC设备中可以通过不同的驱动程序和配置来实现不同功能。USB串口模式允许PPC设备作为一个串行端口与电脑通信,这在进行数据交换或远程控制时非常有用。ActiveSync模式是微软提供的一个同步工具,使PPC设备能与...
使用这个仿真器,用户可以在电脑上体验WM6的所有特性,包括浏览网页、收发邮件、使用Office文档等。 在进行PPC模拟时,需要注意以下几点: 1. 硬件需求:确保电脑配置足够运行模拟器,因为模拟过程会消耗大量CPU和...
Windows Mobile 6.0 模拟器可以实现邮件直推功能,使移动设备随时随地与 Exchange 服务器通信,收发电子邮件。实现邮件直推功能有两种配置方法: 1. 在移动设备上直接配置与 Exchange 服务器同步。 2. 将移动设备...
PPC Phone Edition,即具备电话功能的Pocket PC,它结合了PPC的计算能力和手机的通信功能,用户可以通过触摸屏进行通话、互联网接入和电子邮件收发。 4. PIM(个人资讯管理): PIM是指用于组织和管理个人信息的...
6. **网络配置**:管理无线网络连接,设置GPRS/EDGE/3G连接,进行网页浏览和电子邮件收发。 7. **硬件控制**:如控制内置摄像头、GPS模块等,进行拍照、导航等操作。 8. **多媒体管理**:播放和管理音频、视频文件...
《串口精灵(PPC版):无线通信与设备调试的得力助手》 在信息技术领域,串口通信是设备间进行数据交换的一种基础方式,尤其在嵌入式系统和工业自动化领域应用广泛。"串口精灵(PPC版)"正是针对这种需求而设计的一款...
2. **操作系统**:PPC通常运行在Windows Mobile操作系统上,这是一款专为移动设备设计的系统,支持各种应用程序的安装和运行,包括邮件、日历、联系人管理、Office套件等。 3. **触摸屏操作**:说明书会详细介绍...
标题中的"C# PPC GPRS Socket源码"指的是一种利用C#编程语言,在PPC设备上实现GPRS连接的源代码示例。这个示例可能包括了如何配置和建立GPRS连接,以及如何通过Socket进行数据收发的功能。 描述中的“简单示例”...
在文档中提到的多路高速互连信息处理系统实现中,采用了大量高速收发器,如Xilinx Virtex-7 FPGA 690T和PPC处理器,这些收发器集成了高速串行收发器模块,能够支持高速串行总线标准(如SRIO和PCIe)以及以太网等标准...
"TN4812_Ppc_mpc8xx_sdram_"文档是SDRAM制造商发布的应用笔记,详细介绍了MPC8XX系列处理器与SDRAM的兼容性、配置方法及注意事项,是设计者的重要参考资料。 总结,理解并熟练掌握MPC8XX系列处理器与SDRAM的交互,...
资料管理:联系人管理、电脑收发管理短信、定制日程、管理任务 媒体娱乐:轻松编辑设置手机铃声、手机主题、壁纸 阅读管理:几十万免费电子书在线/本地化管理;新闻RSS订阅等 软件管理:本地软件管理;海量手机软件...
2. **功能多样性**:智能手机除了基础的通话和短信功能,还包括PDA的大部分功能,如个人信息管理、日程安排、任务提醒、邮件收发、文档编辑、网络浏览、GPS导航、多媒体播放、应用程序下载等。随着技术发展,智能...
它内部包含双收发器模块、协议处理部件、存储器管理部件,以及能与不同微处理器进行逻辑接口通信的能力。此外,它还集成了4k字节的共享RAM,使得在进行1553B总线通信时,主机只需初始化内部共享RAM的相关数据结构...
包括HDLC(High-Level Data Link Control)、UART(通用异步收发传输器)以及PCI-X(Peripheral Component Interconnect Extended)接口和DPRAM(双口随机存取存储器),从而实现了通信卡与数据服务器之间的高速数据...