以前制作的ActiveX控件,由于它不会在Web客户端自动下载安装,每次都要在客户端先将控件注册好了才能运行,因此,使用起来很不方便,特别是当ActiveX控件还需要链接其他DLL动态库的情况,就更麻烦。
而cab文件就正好解决了这方面的困难,它把ActiveX控件应用程序以及相关的其他文件放在同一个CAB文件中,然后在CODEBASE属性中指定CAB文件的URL路径。当IE找到CODEBASE属性时,它会自动解析URL地址从而把CAB文件解压到客户机的临时目录,然后注册有关文件,调用COM API函数创建ActiveX控件对象。这样就完成了ActiveX控件的传输。
制作cab文件得关键是理解里面的inf文件,它包含了对需要安装在客户端上的控件的描述,包括安装路径、控件所包含的文件以及对这些文件的描述。
INF文件的格式如下:(在使用Visual C++6.0的情况下)
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
YourCtl.ocx=YourCtl.ocx
mfc42.dll=mfc42.dll
msvcrt.dll=msvcrt.dll
olepro32.dll=olepro32.dll
[YourCtl.ocx]
file-win32-x86=thiscab
clsid={YourCtl.ocx的CLSID} //在YourCtl.odl文件中可以找到
FileVersion=1,0,0,1
RegisterServer=yes
[msvcrt