《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之81——BREW应用间通信之共享内存
2010-09-29 14:05
232 查看
实际上,事件传递本质上就是一种共享内存的通信方式。ICLIPBOARD可以用于实现 AEE 层中的剪切和粘贴功能,是共享内存通信的另一种重要形式。由于剪贴板数据在应用程序结束后仍可能存在,因而此函数会分配新内存并将内容复制到新的缓冲区,也就是说ICLIPBOARD_Set() 分配的内存在系统内存里,所以可以被其他的应用所使用。如果传递指针为 NULL 或大小为 0 的参数,将会释放现有的剪贴板数据。
目标应用希望从剪贴板获得通信内容的时候,需要使用ICLIPBOARD_EnumInit()初始化剪贴板中各格式的枚举上下文,然后调用ICLIPBOARD_GetData()将指定格式的剪贴板数据复制到目标缓冲区,如果剪贴板中的数据不是目标应用所需要的,需要调用ICLIPBOARD_EnumNext()返回下一个可用/注册的剪贴板格式进一步处理,以此类推。在目标应用处理完毕后,可以调用ICLIPBOARD_Empty()从剪贴板中删除所有格式的所有数据。如果最后一个应用程序没有调用 ICLIPBOARD_Empty 来释放剪贴板,并且 BREW 在手持设备关机后退出,则剪贴板上的所有数据均将丢失。
需要注意的是,剪贴板上的数据将在有数据加入的情况下予以更新,有可能随时更新,这时要调用ICLIPBOARD_GetSequence()让调用程序确定剪贴板是否进行过更新,序列号只会在有数据加入时增加计数,数据删除对序列号没有影响。手持设备关机再开机后,序列号将会被重置。
目标应用希望从剪贴板获得通信内容的时候,需要使用ICLIPBOARD_EnumInit()初始化剪贴板中各格式的枚举上下文,然后调用ICLIPBOARD_GetData()将指定格式的剪贴板数据复制到目标缓冲区,如果剪贴板中的数据不是目标应用所需要的,需要调用ICLIPBOARD_EnumNext()返回下一个可用/注册的剪贴板格式进一步处理,以此类推。在目标应用处理完毕后,可以调用ICLIPBOARD_Empty()从剪贴板中删除所有格式的所有数据。如果最后一个应用程序没有调用 ICLIPBOARD_Empty 来释放剪贴板,并且 BREW 在手持设备关机后退出,则剪贴板上的所有数据均将丢失。
需要注意的是,剪贴板上的数据将在有数据加入的情况下予以更新,有可能随时更新,这时要调用ICLIPBOARD_GetSequence()让调用程序确定剪贴板是否进行过更新,序列号只会在有数据加入时增加计数,数据删除对序列号没有影响。手持设备关机再开机后,序列号将会被重置。
相关文章推荐
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之81――BREW应用间通信之共享内存
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之47---BREW SDK 九大功能之显示和用户界面
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之52---BREW SDK 九大功能之位置服务
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之91——BREW debuger的使用
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之16---BREW精要之安全性
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之57---BREW SDK 中的IDE集成环境
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之61-BREW 开发商的注册
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之78——BREW手机中的事件处理
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之29---面向IMS的BREW
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之19---价值蓝海
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之71---BREW中语音与短信的开发
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之35---BREW应用自动安装
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之97——BREW的应用管理器
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之47---BREW SDK 九大功能之显示和用户界面
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之53---BREW SDK 九大功能之电信服务
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之37---BREW 在手机中的软件层次
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之91――BREW debuger的使用
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之16---BREW精要之安全性
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之72---BREW中的特殊语音处理
- 《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之57---BREW SDK 中的IDE集成环境