现在的位置: 首页 > 综合 > 正文

windows mobile 短信拦截总结(一)

2013年08月29日 ⁄ 综合 ⁄ 共 639字 ⁄ 字号 评论关闭

 一 MapiRule

 

这部分是MAPI库中的一个接口,通过实现MAPI的interface来实现短信的拦截,将会编译一个dll,以供tmail调用,同时,为了tmail能调用,需要编辑注册表,将类注册给tmail。

 

在SDK的example中有mapirule这个例子,其中的readme中详细介绍了部署方法

1  创建HKEY_CLASSES_ROOT/CLSID/{dll的GUID}/InprocServer32,在这个key下设置默认值为你的dll的文件名,如果不在windows文件夹下,需要指定全路径,以便tmail能找到dll

2. 创建HKEY_LOCAL_MACHINE/Software/Microsoft/Inbox/Svc/SMS/Rules,在这个key下设置DWORD的默认值为dll的GUID

这样就可以了,

 

而实现部分,代码中很清晰,基本上都不用动,其中ProcessMessage()这个函数是继承mapirule这个接口的,对于接口,必须要实现的,那这个方法就是实际要操作拦截到的短信的地方,可以取短信内容,发信人等信息,这时可以利用策略模式,单独创建短信处理的类,将算法单独分立出来,以便将来算法的改变。

 

其中需要注意,ULONG *pulEventType 这个参数,如果处理完了,不管是move了还是delete,如果你不想要短信notifycation,就把该值设置为fnevObjectDeleted,否则都会提醒,即使我将短信的属性设置为已读。

抱歉!评论已关闭.