ActiveX整理

 

一:ActiveX控件(VC++深入详解)

 1:ActiveX控件是基于com的,其后缀名一般是ocx,但也可以是其它的,如dll.

一个典型的Activex控件,它具有方法,属性和事件这三种特性,一个OCX文件中可以包括多个ActiveX控件.

所有的ActiveX控件必须在注册之后才能使用.

ActiveX控制是OLE控制的更新版本,即AcitveX控件以前叫做OLE控件.

 2:使用MFC开发ActiveX控制,VC会自动产生三个类,还用两个接口:(假设MyName是控制的名字)

* CMyNameApp:从类COleControlModule派生,而类COleControlModule则派生自CWinApp,相当于单文档应用程序的应用程序类.

* CMyNameCtrl:从类COleControl派生,而类COleControl则派生自CWnd,是一个窗口类,相当于单文档应用程序的主窗口类或视类,对控件窗口进行的操作都将在此类中完成,在该类中提供了一个OnDraw函数,当控件窗口发生重绘时,就会调用此函数. 这个框架与一般的MFC应用程序有些类似。开发人员的大部分工作在CMyNameCtrl中,例如用ClassWizard添加属性、方法和事件,处理显示等.

* CMyNamePropPage:从类COlePropertyPage派生,而类COlePropPage则派生自CDialog,是一个对话框类,用来显示和修改ActiveX控件的属性,对话框类有一个对话框资源(ID)与之相关联,如:

enum { IDD = IDD_PROPPAGE_MYNAME };

*_DMyName 和 _DMyNameEvents接口:接口是控件与外部程序进行通信的协议,外部程序通过接口暴露出来的方法去访问控件的属性和方法,接口中定义的所有函数都是纯虚函数,这些函数的实现是在CMyNameCtrl完成.

 3:消息映射,调度映射,事件映射.

调度映射:是ActiveX控件提供的一种映射机制,主要是为了让外部应用程序可以方便地访问控件的属性和方法.

事件映射:也是ActiveX控件提供的一种映射机制,让控件可以向包含它的容器发送事件通知.

 4:属性(当有些编程如VB编程,将一个控件拉入主窗体后,选中控件可以修改控件的属性,此处的属性就是那种属性)

    Stock(常用/标准属性):为每个控件提供的标准属性,如字体和颜色.

    Custom(用户自定义属性):由控件开发者添加的自定义属性.

二:ActiveX脚本描述语言:

   利用VBScript或者Microsoft JScript,可以向Web页面中加入可用于交互的ActiveX控制,将数据预处理或者检验过程放在客户端进行,然后将结果传往WEB服务器.

三:代码签名:

   考虑到WEB的安全性,为了在服务器与客户端建立良好的信任关系,必须为每个在WEB上使用ActiveX控制设置一个“代码签名”(Code Signing)。VC5.0提供了生成供测试用的“代码签名”的工具。如果要正式发布,则必须向有关机构申请。(参见http://www.microsoft.com/intdev/signcode/)

四:* ISAPI(Internet Server API)
    ISAPI提供了扩展支持WEB服务器的简单而有效的方法。开发人员可以设计生成ISAPI 服务器扩展动态连接库(ISAPI Server Extension DLL),它可以被HTTP服务器调用。例如,客户端用户填写了一个表单,按下“提交”按钮后,输入的数据将被传送至HTTP服务器,激活相应的ISAPI扩展应用程序,该应用程序可以处理用户的输入信息,进行相应的操作。或者,按照用户的要求访问数据库,读取用户指定的数据,动态生成HTML文件,再传回客户端。

在WEB服务器上创建扩展应用程序,动态生成WEB页面。使用MFC提供的ISAPI(ISAPI(Internet Server API))类可以方便地建立WEB服务器端的扩展应用程序.

五:设计运行于Internet的ActiveX控制时,必须考虑以下几个问题:

    控制尽可能小

    持续存储数据(Persist Data)如何保存

    如何在Internet上下载和安装

    控制如何在客户端注册

六:可以使用两个途径开发ActiveX控制:MFC和ATL(Active Template Library)

   使用MFC:可以不必理会控制接口的细节,把注意力集中在控制本身的功用上,但是生成的控制比较大。而且,客户端如果要运行此ActiveX控制,必须拥有相应版本的MFC类库的DLL,否则,必须同时下载这些巨大的类库.

   使用ATL:由于不涉及MFC的标准类库,生成的控制相对较小,但开发者必须了解COM、OLE技术的细节.

七:一个ActiveX控件暴露的接口主要分为3类

7.1:ActiveX控件是可嵌入的对象,ActiveX控件实现了如下的接口:

IOleObject, IPersistStorage, IDataObject, IOleInPlaceActiveObject, IOleInPlaceObject, IViewObject2和IRunnableObject (这一个很少用到).

7.2:ActiveX控件通常都支持属性页,这样客户方就可以修改控件的属性了.

7.3:ActiveX控件通常都利用COM的连接点技术,实现了客户方能发现的外出接口.

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

8.1:ActiveX控制(ActiveX Control):

用于向WEB页面、Microsoft Word等支持ActiveX的容器(Container)中插入COM对象.

利用脚本描述语言(Script)可以在控制之间以及客户与服务器之间通过设置属性(Property)、调用方法(Method)和激活事件(Event)进行通信.

8.2:ActiveX文档(ActiveX Document):

用于在WEB Browser或者其它支持ActiveX的容器中浏览复合文档(非HTML文档),例如Microsoft Word文档,Microsoft Excel文档或者用户自定义的文档等.

ActiveX文档提供了传统的嵌入对象的扩展方法。ActiveX文档对象可以包含多个页,显示在整个客户区中,并支持原有的菜单功能.

只要在使用MFC AppWizard时生成应用程序框架时,选择支持Active Document,就可生成标准的ActiveX文档服务器.

8.3:ActiveX服务器框架(ActiveX Server Framework):

提供了一系列针对WEB服务器应用程序设计各个方面的函数及其封装类,诸如服务器过滤器,HTML数据流控制等.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值