- 博客(24)
- 资源 (5)
- 收藏
- 关注
原创 史上最小的基于IE内核的多标签、多进程浏览器
大约在四年前,CHROME浏览器刚刚面世不久,我尝试了一下,立即被它简洁的界面所吸引。当时市面上除了它和IE8,还没有多进程浏览器出现,不像现在,各种多进程浏览器横行。正因为CHROME,才激发了我做一个基于IE内核的多进程浏览器出来。大约在3年前,该浏览器完工,并取名Raptor。想验证执行效果的童鞋,可以下载这个资源(不需要资源分);希望了解和学习源码的童鞋,下载这个资源(完整的VC工程源码,
2011-11-05 11:36:25
9042
30
原创 走进REDUI —— 架构预览
虽然开源了,但感觉还有很多的事情要做。第一件要做的就是让大家能够理解 REDUI 的设计理念和系统架构,上手时间越短越好,所以恶补设计文档。光这件事就够头疼的,图文并茂的文章比写代码难多了,杯具!第二件事是让人知道如何使用,工作量大啊,同样杯具。第三件事……第N件事
2011-08-10 22:57:07
22718
1
原创 值得期待:REDirectUI “开源”
REDirectUI 正在筹划开源,但开源协议不同于任何一个现有的开源协议,它是弹性的,它针对有限的用户群。 一、为什么开源REDirectUI 曾经是一个个人爱好的产物,也曾经是一个目标宏大的计划,本人作为发起者,倾注了多年的精力和心血才使得它初具模样,只是它还没有发光。因个人
2011-07-08 16:06:38
5758
原创 小SHOW一把,3D中的自由裁剪 ----- 界面库求合作!
先看图(背景是桌面,3D老虎的脑袋被我武松砍下了半边^_^):裁剪形状可以自由定义,这个裁剪路径的XML定义暂时记下来,省得以后不记得了:clip:m(.2,#.2) b(0,.2)(.2,0)(.5,.2) b(#.2,.2)(#0,#.2)(#.2,#.2) b(#.2,#0)(.2,#0)(.2,#.2);裁剪路径系列的定义规则是这样的:一个路径包含一系列操作,每个操作的格式如下:operator [position1 [position2
2011-04-22 09:58:00
5789
4
原创 宏定义的极致发挥---让你的普通C++类轻松支持IDispatch自动化接口(二)
这是上一篇博客《宏定义的极致发挥---让你的普通C++类轻松支持IDispatch自动化接口》所展示的示例代码的改进版,改进之处有: 1、如果不想直接提供成员作为属性,可以用成员函数的方式提供属性读写。 2、支持基类映射表,即如果基类也实现了映射表,派生类不用重复填表,自动合并基类表项。唯一的要求就是DISPID不要重复。 3、可以同时合并多个基类映射表。 4、添加可选参数支持,比如某个方法有5个参数,后3个为可选参数(有默认值),那么调用者可以只用2个参数来调用。
2011-01-13 20:44:00
4156
2
原创 如何获得一个COM接口的事件源的GUID
最近坛子有人问起怎样从一个HTML元素接口获取它的连接点的DIID,这个问题本来不是个问题,用OleView看看组件的类型库信息,马上就能得到它的事件接口GUID,问题在于当得到一个 IHTMLElement 指针时,它到底是那种元素类型?每种元素类型的连接点接口是不同的,所以必须要动态获取事件GUID才能挂接到组件上。 想起我正在做的界面项目,已经实现了动态获取功能,就共享一下源码吧。这段源码封装到了一个类的成员函数里面,现在原封不动地贴出来,有少量内容跟目标无关,但不影响代码的阅读和理解,关键注释已经
2010-12-24 23:11:00
4217
1
原创 个人网站启用新域名
<br />新的域名是www.huyuhan.net,旧域名www.huyuhan.com于2010年11月底前停用,停用前还能继续使用,内容跟新域名完全相同。<br /> <br />旧的.com域名是在万网申请的,实在受不了国内JS的唯利是图,随便搞个东西都要收费,而且价格不菲。我使用的是美国主机,除了国内访问速度相对较慢(50KB的速度其实也不错了),哪项都比国内强:主机稳定无限流量无限带宽。可怜的国内用户享受不了无限硬盘空间。你可以建立一个大型的下载网站或者视频网站无限域名网址。一个账号可架设任
2010-10-26 22:53:00
3802
1
原创 3D正式成为REDirectUI的渲染选项
<br />终于在REDirectUI中添加了D3D渲染方式,这只是底层渲染方式,仅作为第一步。启动渲染引擎时并不要求一定要使用D3D,只在显式指定使用D3D且机器具备硬件加速能力的情况下才使用D3D,否则仅使用DDRAW。<br /> <br />由于这只是UI引擎,并非为游戏而设计,因此更多的CPU时间用来处理标准窗口消息,而不是循环render frame。游戏的目的是处理大量的渲染细节,因此通常都是贴图再贴图,游戏程序员通常不考虑GDI,但REDirectUI非得考虑GDI不可,因为作为一个UI引擎
2010-10-20 10:11:00
3720
1
原创 继续逼近FLASH效果
DirectUI 最近特性: 1、任意透明、半透明或不透明。目前除了FLASH、WINFORM,还不知道谁实现了。 2、支持2D/3D变换。FLASH据说也想加入3D功能。这是FLASH的弱项,FLASH的动画就是图片的动画,不是可编程变换,也许有但我不知道。 3、分层思想。大家都是一致的哈。 4、在ALPHA透明显示模式下,无窗口控件、有窗口控件任意混用。应该是独此一家吧,没听说过FLA
2009-09-11 11:45:00
3617
3
原创 宏定义的极致发挥---让你的普通C++类轻松支持IDispatch自动化接口
这篇文章其实有两个主题:一个是充分利用宏的特性把代码最大程度简化;另一个是如何在现有的项目中添加自动化支持。要我说哪一个主题更重要,对不起我也不知道,因为两个主题是紧密关联的,后面的介绍将以宏的使用为主,自动化接口只是宏的一种应用。 熟悉MFC和ATL/WTL的人一定都很熟悉它们的消息映射表,利用宏进行填表是一种非常简洁非常优雅的编码方式,通俗易懂维护方便。对于宏来说,使用越是简
2009-09-05 09:25:00
7270
4
原创 如何判断两个COM指针是同一个对象
故事起源于我移植V8到IE中的过程,在优快云论坛上也发现不少问此问题的人,所以特地整理一篇文章来解释这个问题。 这个问题本来是一个非常简单的问题,COM指针也是指针,既然是指针,只要它们的值相同,就表示它们指向相同的COM对象,如果不同则表示不同对象。假设要写一个判断函数的情况下,表示成这样:bool is_com_equal(IUnknown* unk1, IUnknown* un
2009-06-02 11:38:00
4293
2
转载 谷歌开发新图形验证码防止恶意非法注册
左边是传统的验证系统,右边的新验证系统则要求用将图形旋转到正确方向 新浪科技讯 北京时间5月24日上午消息,据国外媒体报道,谷歌研究人员最近正在测试一项新的图形验证码程序,该程序要求用户将随机颠倒的图片调整为正确的方向。 复杂图片识别 非法程序一直在试图利用机器在网站自动注册并实施破坏,但图形验证码程序却可以阻止它们的进入。图形验证码程序一般是几个歪歪斜斜、弯曲的字
2009-05-24 14:35:00
3119
原创 终于实现了窗口的半透明效果,展示一下,自我庆祝一下
不同于普通的窗口半透明,有几个特点:1、标题栏和边框维持不变(不透明),当然也可以取消标题栏2、客户区随意透明3、部分内容不透明4、窗口内容可操作
2009-05-08 20:43:00
4561
7
原创 近来论坛流行要源码
最近几天看论坛,发现很多人都是开门见山要源码,而且是整套整套的要,我实在想不明白。 1、网上有很多源码,他们找过吗?如果找过,是什么原因不用?看不懂?无法全部满足需求?还有一种我很不想说的原因——懒!很懒!首先自己懒得写源码,不懂又懒得学,好不容易找到源码又懒得看,需求不满足又懒得改,于是上坛子寻找,希望有人帮他搞定一切。你拿工资是干什么的?别人帮你搞定了,你是不是应该把工资都奉
2009-04-27 11:20:00
4310
6
原创 我是如何用 V8 脚本引擎替换JScript的 —— (四)准备3
掌握V8的架构和使用过程V8内部架构相当复杂,但是使用还是很方便的,因为V8把所有功能实现封装到内部的命名空间中,只给使用者提供了相当简洁的外部封装类,这些类都在一个叫做v8的命名空间中,全局函数封装在V8命名空间中(注意大小写有别)。V8引擎使用上的便捷性体现在多个方面:l 大量采用模板类,统一了所有脚本对象的内存管理和垃圾回收。l 所有脚本对象不允许直接在堆或栈上构造,这
2009-04-23 11:31:00
5109
2
原创 我是如何用 V8 脚本引擎替换JScript的 —— (三)准备2
满足Jscript的现有功能特性在脚本语法上,Jscript跟标准JavaScript的语法基本相同,没有特别需要关注的地方。在标准特性上,Jscript除了ECMA标准特性之外,扩充了许多非ECMA标准的特性,必须仔细找出V8尚未实现的部分。下面列出了一部分:VBArray对象条件编译语句Enumerator对象Error对象===和!==操作符Active
2009-04-22 15:18:00
3836
1
原创 我是如何用 V8 脚本引擎替换JScript的 —— (二)准备1
移植前的准备: 准备工作最起码要做三件事情:1、完全理解微软的脚本引擎规范;2、完全满足Jscript的现有功能特性;3、完全掌握V8的架构和使用过程。 理解微软的脚本引擎规范众所周知,微软产品的每个角落都充斥着COM,脚本引擎也不例外。一个合格的脚本引擎必须首先是一个COM组件,并实现下表中列出的标准接口:IActiveScript – 这个接口是必须的,所
2009-04-22 15:02:00
4068
原创 我是如何用 V8 脚本引擎替换JScript的 —— (一)前言
前言: 看标题很容易给人误解,V8引擎本来就是跨平台的,为何还要移植?这个标题真的很不好取名,我的本意是想表达:微软有自己的脚本引擎规范,也有自己的JavaScript引擎,我尝试的事情就是用 V8 替换掉微软自己的 Jscript。这下应该说明白了,但用这个解释来做标题的话实在太长了。由此引来一个新问题:为什么要替换?原因很简单:尝试。我想尝试什么?由于V8开源,我不能把这个东
2009-04-22 14:55:00
4228
原创 参加2009英雄会有感
以往参加过很多产品推介会,却从未参加过任何类型的技术大会,这次收到邀请的时候,心里犹豫了一下,去还是不去?由于没有经验,对这种大会的直觉就是开着无聊的会,听着无聊的演讲,一群打着瞌睡的人,混一顿自助餐,拿点小礼品后走人。在这种会议上,我的作用就是填空,占领会场一个凳子,加一点人气,仅此而已。也只是犹豫了那么一下下,还是接受了邀请,心想可以见到那些久违的人,北京的老朋友很多,可以见
2009-04-21 12:25:00
2935
7
原创 关于通过IWebBrowser2访问IHTMLDocument2的安全限制的探索
IE 在默认情况下有很多的安全限制,比如跨框架跨域访问浏览器页面。对于程序员来说,经常遇到的问题就是通过调用IWebBrowser::get_Document时返回访问拒绝的错误,使用脚本语言也会收到有关权限的提示。经过一段时间摸索,可以简单分析一下这种限制的原理。首先,MS把浏览器对象(IWebBrowser2)划分成可信和非可信的两类。对于非可信的浏览器对象,访问Document属性是
2008-03-19 16:00:00
2776
2
原创 一个纯插件式的网络地址簿
一个纯插件式的网络地址簿 古往今来,人们在社会交流过程中,逐步积累着自己的社交圈子。由于时间和精力的限制,每个人能经常记得并保持长期沟通的交流者(以下称之为“常社交圈子”)其实很少。曾经看过一个学者的调查研究,每个人同时保持长期沟通的人很难超过100人 。而且随着时间的推移,常社交圈子里的人总是在不停的变动,有新人加进来,也有旧人退居二线甚至中断交往。随着社会的进步和社会分工的需要
2007-12-09 23:33:00
1712
原创 ATL实现的CDHtmlDialog模板类
ATL发展到现在,从未提供像MFC中的CDHtmlDialog一样的HTML页面布局且方便开发者使用的窗口基类,虽然也有DHtml Control可供使用,但并不能像MFC那样通过宏映射来方便地让开发者与页面元素之间进行任意的双向交互,尤其是需要响应页面元素事件的时候,ATL/WTL爱好者必须自己编写相应的代码来完成这些工作。基于这个原因,通过理解分析MFC中CDHtmlDialog类的功能和
2007-11-08 08:52:00
4196
9
用于 drupal 网站的 blogapi_ex 模块,取代系统自带的 BLOGAPI 模块和第三方的 WLW_BLOGAPI 模块
2010-08-17
DuiBrowser
2009-12-17
线程委托库C++源码(内置多线程浏览器实现)
2009-09-23
ATL实现的CDHtmlDialog模板类v1.03
2008-01-18
ATL实现的CDHtmlDialog模板类
2007-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人