internet的ActiveX+控件开发使用方法
internet的ActiveX+控件开发使用方法
ActiveX 控件是一个自包含代码的组件,它有自己的永久状态,并且 ActiveX 控件与包容器之间通过 COM 接口进行通信,所以通常 ActiveX 控件具有普遍的适应性,换句话说,如果 ActiveX 控件在一个包容器程 序中可以运行,那么通常它也可以运行在另一个包容器程序中。由于 ActiveX 控件是一种可独立发布的组 件程序,又是一个永久对象,这些特性使得它非常适合于 Internet 环境。 从包容器 IE 而言。IE 需要考虑一些与 Internet 环境有关的问题,如许可证检查,自动下载、远程数 据获取等。 另一方面从 ActiveX 控件本身来看,用于桌面环境的 ActiveX 控件,为了获得更强的交互性能,通常 它要实现各种 ActiveX 控件所要求的接口,所以组件规模通常很大。为了使程序代码量尽可能地小, Microsoft Visual C++提供了 ATL 模板库作为这类 ActiveX 控件的基本开发工具。 IE 要求 ActiveX 控件必须支持自注册,以便在用户浏览包含 ActiveX 控件的 WEB 页面时可以动态地 注册控件。所以作为 ActiveX 控件的 DLL 程序必须引出 DllRegisterServer 和 DllUnregisterServer 函数。 接口 IOleObject IOleInPlaceObject IOleInPlaceActiveObject IOleControl 如果控件支持快捷键,或者访问包容器的环境属性,或者控件要求包容器 处理事件,则须实现此接口。 IDataObject IViewObject2 IDispatch IConnectionPointContainer IProvideClassInfo[2] 如果控件提供数据对象的特性,则实现此接口 如果控件在非实地激活状态下也需要显示信息,则实现此接口 如果控件有自定义的属性和方法,则实现此接口 如果控件对象支持一个或多个出接口,则实现此接口。 如果控件对象要直接通过 GetClassInfo 成员函数提供对象类型信息,则 实现此接口 ISpecifyPropertyPages IPersistStream[Init] IPersisStorage 或其它永久接口 如果控件对象支持属性页,则实现此接口 如果控件对象支持永久特性的,则至少实现一个永久接口 功能与说明 如果控件要与包容器程序的站点对象进行通信,则须实现此接口 如果控件支持实地激活特性,则须实现此接口
internet的ActiveX+控件开发使用方法
从理论上讲,IE只要求被嵌入的对象(ActiveX控件以对象的形式被嵌入在页面中)实现IUnKnown接
口,但实际上为了实现一定的功能,并更好地与IE程序进行交互,ActiveX控件还必须实现其它一些接口。
对应的接口与功能对应关系如下:
一般的包容器程序通常只负责ActiveX控件的创建、运行和释放,但IE要做的事情更多一些。首先,
当客户机上不存在ActiveX控件组件程序时,它必须根据HTML页面中指示的地点把组件程序下载过来,
并注册在客户机上,然后再创建对象,此过程在后台自动完成,不需要执行其它命令。其次,当IE把组件
程序下载到本地之后,它在创建控件对象时可以进行许可证检查,以保证系统安全性,用户也可拒绝对象
或执行初始化。
ActiveX控件包装
通过CLSID指定ActiveX控件的类型,如果要在IE中正确显示包含ActiveX控件的页面,则必须事
先在机器上注册相应的ActiveX控件,否则相应的ActiveX就不能显示。在Internet上使用时,页面设计
者不能期望浏览器用户找到你指定的ActiveX控件并注册到客户机上,为了解次这个问题,我们可以用
“codebase”属性指定控件的代码位置:
<OBJECT CLASSID=”CLSID:2885EE05-A26B-11d1-B49B-00c04F98EFE0”
Codebase=“”
ALIGN=”CENTER” WIDTH=200 HEIGHT=200 ID=”PolyCtl”> </OBJECT>
以上指定了Polygong控件程序“http://webserver/Pollgon.dll”,当浏览器碰到这样的描述时,它会把
codebase指定的程序下载到本地(在系统目录的“Downloaded Program Files”子目录下),然后调用组件程
序的自注册入口函数注册到当前系统中,以后的创建都在本地进行,不再涉及codebase属性。
因为ActiveX控件的程序代码需要在Internet上传输,所以使用压缩技术传输程序代码非常有意义。另一
方面,如果ActiveX控件还调用到其它的DLL程序模块,那么IE也必须把这些程序下载到本地来,为此,
Microsoft采用了惯用的CAB压缩方法,它把ActiveX控件程序以及相关的其它文件放到同一个CAB文件
中,然后在codebase属性中指定CAB文件的URL路径。
IE对CAB文件的处理过程如下:
1. IE在解析“OBJECT”标记时,它继续查找codebase属性。
2. 如果找到了codebase属性,并且codebase指定了ActiveX控件的CAB文件,那么IE定位到CAB文件。
internet的ActiveX+控件开发使用方法
3. IE把CAB文件中的有关文件解压出来,并放到客户机的临时目录(系统目录的“Downloaded Program Files”
子目录下)中。
4. IE注册有关的文件。
5. IE调用COM API函数创建ActiveX控件对象。
CAB文件包含了ActiveX控件注册和运行时所需要的必要信息。通常一个CAB文件包含一个INF文件,
INF文件是一个文本文件,它描述了CAB文件的所有细节信息。如以下的INF文件例子。
[version]
Signature=”$CHICAGE$”
AdvancedINF=2.0
[Add.Code]
MyCtrl.ocx = MyCtrl.ocx
Msvcrt.dll = msvcrt.dll
Mfc42.dll = mfc42.dll
Olepro32.dll = olepro32.dll
[MyCtrl.ocx]
File-win32-x86=thiscab
Clsid = {2885EE05-A26B-11d1-B49B-00c04F98EFE0}
FileVersion = 1,0,0,0
RegisterServer = yes
[msvcrt.dll]
FileVersion = 4,20,0,6164
Hook = mfc42installer
[mfc42.dll]
FileVersion=4,2,0,6256
Hook=mfc42installer
[olepro32.dll]
FileVersion = 4,2,0,6068
internet的ActiveX+控件开发使用方法
Hook = mfc42installer
[mfc42installer]
File-win32-x86=http://doc.guandang.net/controls/vc/mfc42.cab
Run = %EXTRACT_DIR% \mfc42.exe
[Version]给出了INF文件的基本版本信息,“signature=”一行说明此INF文件可适用于32位
Windows操作系统; “AdvancedINF=”一行要求IE必须装入2.0版以上的Advpack.dll模块才能解析此
INF文件。
[Add.Code]是INF文件的主体部分,它列出了所有ActiveX控件需要的文件以及每个文件所对应的部分名称。MyCtrl
控件是MFC开发的,所以它需要用到MFC的动态连接库文件,所以,这一部分中列出了MyCtrl控件所
必须的四个文件:MyCtrl.ocx、msvcrt.dll、mfc42.dll和olepro32.dll。
[MyCtrl.ocx]部分描述了MyCtrl控件组件程序MyCtrl.ocx的信息,包括此程序所在的CAB文件位置(thiscab指自
身)以及MyCtrl控件的CLSID信息。”FileVersion=”指明了MyCtrl.ocx的版本;”RegisterServer=yes”说
明此文件在使用之前要预先被注册。
[msvcrt.dll] [mfc42.dll] [olepro32.dll]部分分别说明了相应的文件版本,并把进一步信息指向最后的[mfc42installer]
部分。
[mfc42installer]部分中,“file-win32-x86=”指明了MFC42.CAB文件的URL路径,”run=”指明了运行的命令
可用Cabarc.exe工具生成CAB文件,如:
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




