您的位置:首页 > 其它

《BREW进阶与精通――3G移动增值业务的运营、定制与开发》连载之81――BREW应用间通信之共享内存

2010-09-29 14:05 573 查看
实际上,事件传递本质上就是一种共享内存的通信方式。ICLIPBOARD可以用于实现 AEE 层中的剪切和粘贴功能,是共享内存通信的另一种重要形式。由于剪贴板数据在应用程序结束后仍可能存在,因而此函数会分配新内存并将内容复制到新的缓冲区,也就是说ICLIPBOARD_Set() 分配的内存在系统内存里,所以可以被其他的应用所使用。如果传递指针为 NULL 或大小为 0 的参数,将会释放现有的剪贴板数据。
目标应用希望从剪贴板获得通信内容的时候,需要使用ICLIPBOARD_EnumInit()初始化剪贴板中各格式的枚举上下文,然后调用ICLIPBOARD_GetData()将指定格式的剪贴板数据复制到目标缓冲区,如果剪贴板中的数据不是目标应用所需要的,需要调用ICLIPBOARD_EnumNext()返回下一个可用/注册的剪贴板格式进一步处理,以此类推。在目标应用处理完毕后,可以调用ICLIPBOARD_Empty()从剪贴板中删除所有格式的所有数据。如果最后一个应用程序没有调用 ICLIPBOARD_Empty 来释放剪贴板,并且 BREW 在手持设备关机后退出,则剪贴板上的所有数据均将丢失。
需要注意的是,剪贴板上的数据将在有数据加入的情况下予以更新,有可能随时更新,这时要调用ICLIPBOARD_GetSequence()让调用程序确定剪贴板是否进行过更新,序列号只会在有数据加入时增加计数,数据删除对序列号没有影响。手持设备关机再开机后,序列号将会被重置。本文出自 “我相信” 博客,请务必保留此出处http://wirelesscao.blog.51cto.com/3397462/631881
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐