花了四天时间,再次对QQ的剪切板格式做了深入研究,对im_richedit做了一次重构使得richframe作为抽象的支持动画功能占位块,派生出richpicture。从基本功能上来讲,可以实现qq消息框的功能。
我支持的剪贴板格式如下:
enum FETCINDEX {
kFETCINDEXUnicode, // Unicode 文本
kFETCINDEXAnsi, // ANSI 文本
kFETCINDEXDIB, // DIB
kFETCINDEXHDROP, // HDROP
kFETCINDEXHTML, // HTML
kFETCINDEXIMRichEdit, // 自定义格式
};
kFETCINDEXUnicode, // Unicode 文本
kFETCINDEXAnsi, // ANSI 文本
kFETCINDEXDIB, // DIB
kFETCINDEXHDROP, // HDROP
kFETCINDEXHTML, // HTML
kFETCINDEXIMRichEdit, // 自定义格式
};
未来打算扩展的OLE类型如下:
enum IMRichElementType {
kIMRichElementText, // 字符串
kIMRichElementCustomPicture, // 自定义图片
kIMRichElementSystemPicture, // 系统图片
kIMRichElementFancyCharacter // 炫彩字符
};
kIMRichElementText, // 字符串
kIMRichElementCustomPicture, // 自定义图片
kIMRichElementSystemPicture, // 系统图片
kIMRichElementFancyCharacter // 炫彩字符
};
时间紧张,很多细节处理不完善,上周还初步实现了chromium的windowless版的embed方案,新的一周要努力完善。
效果图如下(支持HTML拷贝咯!!!):
执行文件下载
技术讲解会在现在特性细节完成后继续。扯点别的,继chrome os的shell放弃web实现后,fb也倾向native app而暂缓html5,似乎给html5泼了一小点冷水。新技术的稳定需要一个过程,而商业公司往往看重的是当前的运营、盈利。当然html5本身仅仅是加入了一些语义、植入了一些sdk,而作为Windows开发者擅长的也是对sdk封装而非语言层面的封装,相比之下,web方面我比较热衷用html5新特性(canvas)来实现UI,而对于原生的html元素拼凑界面有点摸不着门道。