• ActiveX技术综述


    .1.ActiveX的定义

      ActiveX是Microsoft提出的一组使用COM(ComponentObjectModel,部件对象模型)使得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。

    1.2.ActiveX的内容

      ActiveX既包含服务器端技术,也包含客户端技术。其主要内容是:

      *ActiveX控制(ActiveXControl);用于向WEB页面、MicrosoftWord等支持ActiveX的容器(Container)中插入COM对象。
      *ActiveX文档(ActiveXDocument);用于在WEBBrowser或者其它支持ActiveX的容器中浏览复合文档(非HTML文档),例如MicrosoftWord文档,Microsoft Excel文档或者用户自定义的文档等。
      *ActiveX脚本描述(ActiveXScripting);用于从客户端或者服务器端操纵ActiveX控制和Java程序,传递数据,协调它们之间的操作。
      *ActiveX服务器框架(ActiveXServerFramework);提供了一系列针对WEB服务器应用程序设计各个方面的函数及其封装类,诸如服务器过滤器、HTML数据流控制等。
      *在InternetExplorer中内置Java虚拟机(JavaVirtualMachine),从而使JavaApplet能够在InternetExplorer上运行,并可以与ActiveX控制通过脚本描述语言进行通信。

    2.ActiveX控制和Internet
      ActiveX控制是OLE控制的更新版本。控制(Control)是建立可编程部件(Component)的主要元素。ActiveX控制可以用于所有支持COM规范的容器中,或者作为Internet控制嵌入到WEB页面中。用户访问该页面时将下载该控制并自动在本地注 册。利用脚本描述语言(Script)可以在控制之间以及客户与服务器之间通过设置属性(Property)、调用方法(Method)和激活事件(Event)进行通信。

      ActiveX控制与以前的OLE控制相比,具有更少的接口,并且可以没有窗口。所有的ActiveX控制都支持IUnknown接口。

    6.VisualC++5.0对ActiveX的支持

      VC++5.0(企业版)为Internet开发提供了完整的解决发案,其内容是:

      *使用MFC或者ATL开发ActiveX控制和ActiveX文档。

      *使用ISAPI设计WEB服务器端的部件。

      *使用WinInet开发通过Internet存取文件的应用程序。

      *使用AsynchronousMonikers生成从Internet下载数据的应用程序。

      *使用ActiveXSDK开发其它类型的基于Internet的Win32应用程序,包括ActiveXScriptingHost,MicrosoftWebConferencing等。

    6.1.用VC5.0开发ActiveX控制

      VC++5.0提供两个途径开发ActiveX控制:MFC和ATL(ActiveTemplateLibrary)。使用MFC,可以不必理会控制接口的细节,把注意力集中在控制本身的功用上,但是生成的控制比较大。而且,客户端如果要运行此ActiveX控制,必须拥有相应
      版本的MFC类库的DLL,否则,必须同时下载这些巨大的类库;使用ATL,由于不涉及MFC的标准类库,生成的控制相对较小,但开发者必须了解COM、OLE技术的细节。大多数情况下,可以使用MFC开发ActiveX控制,这样比较容易。而且,由于InternetExplorer3.0提供了MFC4.1的类库,而InternetExplorer3.0是Windows95提供的组件,所以,只要ActiveX控制使用的是MFC4.1或者更早的版本,多数情况下不需要下载MFC的类库。

      使用MFC开发ActiveX控制,可以用MFCActiveXControlWizard生成工程框架。VC会自动产生三个类:(假设MyName是控制的名字。)

      *CMyNameApp:从类COleControlModule派生,而类COleControlModule则派生自CWinApp;

      *CMyNameCtrl:从类COleControl派生,而类COleControl则派生自CWnd;

      *CMyNamePropPage:从类COlePropertyPage派生,而类COlePropPage则派生自CDialog;

      可以看出,这个框架与一般的MFC应用程序有些类似。开发人员的大部分工作在CMyNameCtrl中,例如用ClassWizard添加属性、方法和事件,处理显示等。

      编译生成OCX文件后,用VC提供的ActiveXTestContainer测试这个控制,也可以用OLE/COMObjectViewer浏览此控制的接口信息及类型库。

    6.2.ActiveX控制在WEB上的应用

      考虑到WEB的安全性,为了在服务器与客户端建立良好的信任关系,必须为每个在WEB上使用ActiveX控制设置一个“代码签名”(CodeSigning)

    在WEB页面中使用ActiveX控制,还要对之进行包装,将有关的动态连接库及信息文件压缩到一个扩展名为CAB(Cabinet)文件中。可以使用VC5.0提供的工具包装ActiveX控制。在HTML文件中,使用OBJECT标签插入ActiveX控制,并利用VBScript或者JScript访问该ActiveX控制。客户端用InternetExplorer浏览此页面时,可以自动解包该文件。出于安全性的考虑,InternetExplorer为ActiveX部件的下载、初始化、是否拥有合法的代码签名以及是否允许Scripting等设置了不同的
      安全级别,用户可根据需要进行设置。下面这个例子中,使用了ActiveX控制“MSChart.OCX",当用鼠标单击此控制时,控制的标题将改变。
    这里,必须提供该OCX的ClassID和文件路径或URL。客户端浏览此页面时,先在本地的注册表中查找该ClassID,如果存在,则不必下载。否则,必须按照CODEBASE指定的路径搜索该控制并下载。标签Object中的ID是该OCX的对象的名称,用来
      访问和设置对象属性,调用对象方法等。
    6.8.VisualC++6.0

      1998年9月,Microsoft将推出的VisualC++6.0。VC6.0除了保留VC5.0的ActiveX支持外,还将支持DHTML,MFC及ATL的类库及模板也有扩充。用户可以方便地开发出类似WEB浏览器界面的应用程序

    7.2.包装ActiveX部件

      上述ActiveX部件都可以使用VB5.0的SetupWizard进行包装,生成采用Lempel-Ziv压缩算法的CAB文件,在WEB上发布。SetupWizard将把相关的动态连接库及信息文件一同包装。使用VB5.0生成的ActiveX部件,可以包装成SafeScripting和SafeInitializing。

  • 相关阅读:
    [转]How to use String.Format in PowerShell?(如何在PowerShell中使用string.format?)
    推荐一个电子书网站,里面关于SharePoint的英文书籍有很多。
    [转]Content targeting for anonymous users with SharePoint Server 2010(给匿名用户配置外部配置文件)
    SharePoint 2010 术语表
    [转]Importing documents to Document Libraries with Mavention Import Document Library Contents(使用VS插件导出文档库内容定义)
    [转]SharePoint 2010: Client Object Model for JavaScript (ECMAScript)(使用客户端对象模型)
    [转]how to programatically access builtin properties of open xml word doc(如何读取open xml格式文档属性)
    [转]Import List Instances and their data with Mavention Import List Instance(使用VS插件导出列表数据定义)
    [转][MSMAVA]: Microsoft Office SharePoint Server (MOSS) Analytics View Access Protocol Specification
    [转]Allowing anonymous users access to SharePoint user's profile pictures(允许匿名用户访问用户配置文件中的头像图片)
  • 原文地址:https://www.cnblogs.com/superch0054/p/4010207.html
Copyright © 2020-2023  润新知