教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

internet的ActiveX+控件开发使用方法

来源:网络收集 时间:2026-08-31
导读: internet的ActiveX+控件开发使用方法 ActiveX 控件是一个自包含代码的组件,它有自己的永久状态,并且 ActiveX 控件与包容器之间通过 COM 接口进行通信,所以通常 ActiveX 控件具有普遍的适应性,换句话说,如果 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文件,如:

Ca …… 此处隐藏:5363字,全部文档内容请下载后查看。喜欢就下载吧 ……

internet的ActiveX+控件开发使用方法.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1707013.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)