慢读chrome

先从base读,

clipboard:设计了多个类型的剪贴板操作函数,

Bookmark,files,html,text,data等,接收时是怎么确定类型然后打开的呢?

通过RegisterClipboardFormat注册格式,然后设置数据的时候

::SetClipboardData(format, handle)

读的时候通过IsClipboardFormatAvailable判断是否是某个类型,估计要用循环来确定类型吧?

  EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetUrlWFormatType(), Clipboard::BUFFER_STANDARD));

 

clipboard.cc

只能globalalloc分配数据,不能globalfree,否则其他线程是拿不到这个剪贴板的数据的,具体的globalfree估计是在emptyclipboard上做的,全局只有这么一个剪贴板,所以如果想不影响系统原来的通讯,需要创建一个虚拟的桌面

CreateWindowStation

CreateDesktop

google怎么用的还没看到,这两个函数具体怎么用?

 

platform_thread_win.cc

thread,大部分书上介绍说尽量使用__beginthreadex代替createthread,因为那个结构tiddata一是会泄露,2是在创建tiddata之前,程序发生了中断,但是tiddata还没创建,会发生未知错误。但是google还是用了createthread,他的观点是createthread更快,而且在dll编译方式上,dll_thread_detach消息会使程序释放掉tiddata,但是没有设计中断问题,不过对不太注重效率的我来说,还是要尽量避免掉createthread吧,http://www.microsoft.com/msj/1099/win32/win321099.aspx

顺便看了下地址窗口扩展(awe),一个是可以创建非交换内存,2是可以创建超过内存地址空间的内存

 

win_util.cc

一个shellcreate,很少人写代码会检查失败吧?他这里提供了一个方法OpenItemWithExternalApp

当调用失败并且失败原因是SE_ERR_NOASSOC时,调用shellcreateex来弹出调用程序选择框

还有一些vista下的用法, 不熟悉暂时也不想去了解了

 

native的就不看了,啥都不懂

 

另外奇怪的是我这个工程的单元测试是错的,不知道啥原因

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值