ActiveX技术综述(二)6.6.AsynchronousMonikers 由于目前网络带宽的限制,用户通常希望能够异步下载数据,例如异步下载网页的一张图片,并显示下载进度。MFC提供了类CAsyncMonikerFile来实现这个功能。 6.7.ActiveXSDK VC5.0还提供了专门的WIN32ActiveX开发工具:ActiveXSoftwareDevelopmentKit(ActiveXSDK)。ActiveXSDK包含一系列接口定义及与Internet有关的WIN32函数,包括ActiveXScriptingComponent、WebBrowsingObject、WebPost API等,用户可以利用这些接口和API开发面向WEB的应用程序或ActiveX部件。 6.8.VisualC++6.0 1998年9月,Microsoft将推出的VisualC++6.0。VC6.0除了保留VC5.0的ActiveX支持外,还将支持DHTML,MFC及ATL的类库及模板也有扩充。用户可以方便地开发出类似WEB浏览器界面的应用程序。 7.VisualBasic5.0对ActiveX的支持 7.1.VisualBasic部件 VisualBasic5.0(以下简称VB)的部件(Component)是由可执行代码构成的文件(EXE,DLL,OCX),它可以为其他应用程序或者部件使用。以前版本的VB允许用户生成称为"OLEServer"的部件,VB5.0扩展了部件设计功能,支持引发事件,异步回调(Call-backs)等,并增强了创建ActiveX控制和ActiveX文档的功能 。 VB5.0的ActiveX部件(Component)包括: *ActiveX控制 ActiveX控制与客户应用程序运行在同一个进程中。用VB5.0创建可用于VB或者其它开发工具及WEB浏览器的ActiveX控制,与一般的VB应用程序设计大同小异。可以为ActiveX控制加上属性页,并实时调试。另外,VB5.0提供了一组强大的数据库存取控制,开发人员只需编写少量代码就可以完成一般的数据库操作。 *ActiveX文档 VB5.0的ActiveX文档提供了内置的窗口滚动、超链接以及菜单支持,直接嵌入WEB页中。编制ActiveX文档与设计VB表单(FORM)完全相同,用户可以选择生成ActiveXDocumentDLL或者ActiveXDocumentEXE。无论哪一种类型,VB都将生成一个类似表单文件的VBD(VisualBasicDocument)文件。可以直接用Internet Explorer来浏览这个文件,或者用VBScript或者JScript进行访问。 *ActiveXDLL ActiveXDLL提供的对象与应用程序运行于同一个进程中。应用程序可以创建对象,设置对象属性,调用对象的方法。ActiveXDLL一般不需要建立用户界面。 *ActiveXEXE ActiveXEXE提供的对象与应用程序运行于在不同的进程中。应用程序创建对象,调用对象的方法后,可以继续进行自己的工作。当对象的工作完成后,它会通知应用程序。 ActiveXDLL和ActiveXEXE合称为VisualBasic代码部件(CodeComponent)。 7.2.包装ActiveX部件 上述ActiveX部件都可以使用VB5.0的SetupWizard进行包装,生成采用Lempel-Ziv压缩算法的CAB文件,在WEB上发布。SetupWizard将把相关的动态连接库及信息文件一同包装。使用VB5.0生成的ActiveX部件,可以包装成SafeScripting和SafeInitializing。 7.3.ActiveX文档在WEB上的应用 向WEB页面中加入ActiveX文档,首先要将该ActiveX文档包装成CAB文件。由于InternetExplorer读入ActiveX文档时,该文档将取代当前的WEB页,因此,一般将ActiveX文档(即HTML的标记OBJECT)放在一个独立的HTML文件中。例如,下面这条语句建立了一个超链接: <AhRef="ActiveXDoc.htm">LinktoaActiveXDocument</A> 其中,ActiveXDoc.htm是下载ActiveX文档的HTML文件: <OBJECT classid="clsid:2F390484-1C7D-11D0-8908-00A0C90395F4" codebase="ActiveXDoc.cab#version=1,0,0,0"> </OBJECT> 这条语句将下载ActiveXDoc.cab,并在Windows注册表中注册该ActiveX文档。 7.4.VisualBasic代码部件在WEB上的应用 VisualBasic代码部件包括ActiveXDLL和ActiveXEXE,它们可以在服务器端运行,也可以从客户端下载再运行。 如果某个ActiveXDLL运行在服务器端,服务器上运行的是InternetInformationServer,则可以使用VB的OLEISAPI2.DLL提供的函数进行访问,或者基于ActiveServerPages使用VBScript或者JScript。 如果希望客户端下载某个代码部件,则首先要将该部件包装成CAB文件。例如,用VB5.0企业版生成了一个ActiveXDLL:MyDLL.DLL,它只有一个类:MyClass,其唯一的方法是显示LogIn对话框。用SetupWizard包装这个部件,生成了CAB文件。下面的语句将在客户端下载MYDLL.CAB: <OBJECTID=MyClass CLASSID="CLSID:503B3E09-2191-11D2-8E90-00104B64F7B7" CODEBASE="mydll.cab"> </OBJECT> <INPUTTYPE=buttonVALUE="LogInNOW"NAME="BtnLogin"> <!-- Whenthebuttonisclicked,callthe"LogIn"method. --> <SCRIPTlanguage="VBScript"> <!-- SubWindow_OnLoad MyClass.Login EndSub SubBtnLogin_OnClick() MyClass.Login EndSub --> </Script> 其中,ObjectID是这个ActiveXDLL中某个类的名字。当此WEB页面被下载并显示时,MyClass类的方法LogIn将被调用,并在客户端显示LogIn对话框。 7.3.VisualBasic6.0 Microsoft计划于1998年9月推出VisualBasic6.0。目前Beta版正在测试。VB6.0与VB5.0相比,除继续支持InternetExplorerDocumentObjectModel(DOM)开发之外,将提供两个令人兴奋的新功能: *DynamicHTML编辑器 开发人员可以象编制普通VB程序一样,制作DHTML文件或模板。 *WebClasses; 开发人员可以在WEB服务器端建立与ASP文件一一对应的WebClass类,每个类都可以访问ASP对象,在VisualBasicIDE中跟踪调试,并生成ISAPI动态连接库。 上一篇:ActiveX技术综述(一) 下一篇:Windows 2000 安全性技术概述--1 更多相关文章
|
推荐文章
精彩文章
|