`
apaky
  • 浏览: 3385 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

when a desktop application meets the web browser

阅读更多
     今天碰到的新需求,在桌面的应用程序中,嵌入浏览器,并且要求应用程序与浏览器中的web页面能够进行数据交换。
     在大学时便开始接触MFC了,只可惜来来回回接触过好多次,但从没有真正的搞明白过这套基础类库。再后来听说过诸如COM,ACTIVEX之类的名词,只是大约知道而已,具体是什么东西,基本上是没有什么概念。再后来,开始在LINUX平台作开发以后,便开始慢慢的淡忘甚至讨厌起WINDOWS平台上的开发。
     可惜现在又要开始搞,搞吧,多搞搞总不是坏事。
     常常把开源的好处挂在嘴边,比如,搞不明白读源代码去;什么地方不符合自己要求直接改去。其实现在想想,微软在闭源的这个方向上的确也是走出了一条比较牛逼的路,该藏的我的藏好了,又要给你足够的灵活性,让你能够自由发挥,就如同戴着脚镣跳舞,虽然笨拙,可是依然要跟上舞步。
      长久没有好好的关注WINDOWS平台的进化了,现在说起来,应该也只能给个大概,印象中从最早我接触的WIN32 API,到MFC可以拖拖按钮,再到今天的.NET Framework,这后面到底发生了多么大的变化,如果仔细研究,应该也是很有意思的。还有不得不说的开发工具,从VC 6到现在几乎每个20xx年就会推出的VISUAL STUDIO 20xx,以至于我今天坐在20xx前,竟有点手足无措的感觉。
      我喜欢对事情能够一探究竟,所以当再次打开MFC的时候,不禁困惑,为什么是这么看起来东拼西凑的几个类;又为什么我只需要在那几个函数里写写画画;又究竟这程序是怎么开始的,又如何结束....微软的大牛们的确是为我们考虑的够周到,当然,也有考虑不周被人臭骂的地方。
      感想说了半天,说说今天的需求,搞了一天,方才弄出点眉目来。窗口中嵌入浏览器,尤其是嵌入IE,貌似是非常简单,只要加入一个浏览器的ActiveX控件即可。窗口与浏览器中页面的交互,主要通过window.external来实现。可以通过扩展IDispatch来扩展window.external对象。
      其实细想来,不难发现为什么会有那么多基于IE内核的浏览器出现,虽然IE内核不开放源代码,可是windows下的各种技术和微软提供的各种接口,给了你足够的空间去实现一个自己的浏览器。
       如果在linux上搞这样一套标准化的东西,会怎样?或者,已经有了?
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics