关键字 webbrowser,idochostuihandler,getexternal
在用delphi.visual basic等可视化快速开发工具编写windows应用程序时,常会遇到这样几个问题: 【程序编程相关:使用Platform Builder配置】1 引言 【推荐阅读:初次接触EJB】
2) 希望应用程序在功能不变的情况下具有不同的界面风格.这常常通过换"皮肤"的技术来实现,但一般实现"换肤"功能的控件体积都较大,且界面反应速度比较慢,而且 "皮肤"的制作比较麻烦. 【扩展信息:java and excel】1) 希望程序界面美观.在delphi中,开发人员通常使用各种控件来实现界面的风格化,但缺点是造成应用程序体积较大,且在升级时常会被控件版本与delphi版本不兼容带来的问题所困扰.3) 程序界面的维护困难.为了使界面与代码实现相分离而获得"换肤"等灵活性,通常要用到一些设计模式的技术,这对于不熟悉设计模式的开发人员来说比较困难.微软公司预计将于2006年发布下一代操作系统(开发代号为longhorn)中,应用程序的结构及部署将有重大变革,其中一项就是应用程序的界面完全以xml的一个扩展集xaml语言来描述,以便达到界面的高度可定制性.这无疑能够方便地解决上述几个问题.问题是在目前来说有没有类似的方法呢?答案就是使用浏览器控件.
微软公司的网页浏览器internet explorer的核心被设计为可以嵌入到应用程序中重用的activex组件,它有极强的可编程能力与与容器交互的能力,使得开发人员能够快速地开发出功能强劲的应用程序.从下面的internet explorer的架构图可以看到,我们平常运行的iexplorer.exe其实只是一个外壳程序,真正的浏览网页.记录历史等工作是由嵌入其窗口的封装在shdocvw.dll中的webbrowser control来完成的. shdocvw.dll的功能则是调用mshtml.dll来解析网页,以及在它的窗口中嵌入其它活动文档组件(如microsoft office.adobe acrobat等应用程序的文档都可以嵌入到浏览器窗口中查看).而mshtml.dll一方面处理html解析以及作为脚本引擎.java虚拟机.activex控件.插件的宿主,另一方面,它实现了活动文档服务器接口,允许应用程序以标准的com接口来把它嵌入到程序中并通过它暴露的接口来访问其中的网页及网页元素.... 下一页