什么是ActiveX控件:一个进程内服务器,支持多种的COM接口。(可以理解为,一个COM接口是一个纯抽象基类,你实现了它,并且它支持自注册,就是一个ActiveX控件了)
可以把ActiveX控件看做是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。

容器应用程序是可以嵌入或链接对象的应用程序。

服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序。

  我们常用的word就是一个容器应用程序,例如,若在word文档中可以嵌入或链接一个Excel表格对象,则这时的word就是服务器应用程序。 在双击word文档中嵌入或链接的这个Excel表格对象后,将启动Excel程序来完成对这个表格的编辑工作。Excel就是拥有这个表格对象的服务器应用程序,而word程序则是可以容纳这个表格对象的容器应用程序。另外,我们也可以在word文档中嵌入或链接一个 word文档对象,因此对word来说,它不仅仅只是一个容器应用程序,同时它也是一个服务器应用程序。

  ocx是ActiveX控件文件的一种后缀名,但应该注意的是,ActiveX控件对应的文件也可以是其他后缀名,例如DLL 。

  一个典型的ActiveX控件有三种特性:方法、属性、事件

控件的宿主程序应该就是appWizard里可选择的三种类型,DLL,EXE,Service就是一什么形式发布。
自注册:向注册表中添加一系列注册表项和值的过程。(都是在HKEY_CLASSES_ROOT里)
属性页:属性页是控件的一个重要的功能。(实现属性页有明显的好处,试想在MFC里设计一个控件的属性时属性页多么的方便)属性页也是一个COM组件,由容器应用程序单独实例化。
属性的持续性:容器中的每个控件都有自己的属性值,如果容器关闭后还想维持属性的状态值,则这个控件要支持持续性。目前用于属性持续性的主要接口有:IPersistStream, IPersistStreamInit, IPersistPropertyBag三个。
控件容器有2种模式:设计时模式和运行时模式。它也是一个基于COM的组件。
 
(目前,ATL是写ActiveX控件的首选开发工具,开发任何COM应用都是如此)
 
可通过ActiveX控件的属性、事件和方法与ActiveX控件进行交互:
 1:属性是指与控件相关的特性。
 2:事件是由控件向容器传递的通知信息。
 3:方法是指可通过IDispatch使用控件的一类函数。
属性
属性是由ActiveX控件和控件所在的客户端展示提供的。共有四种基本属性:
1、Ambient属性是由容器向控件提供的。为了适应需要,控件必须使用这些属性。常用的ambient属性有容器的背景颜色、默认字体以及前景色等。
2、extended属性是由容器实现的,但看起来是由控件生成的。例如,容器中各种各样控件的制表顺序便属于extended属性。
3、stock属性是由ActiveX控件开发工具实现的控件属性。Stock属性的例子有控件的字体、标题文本和前景色及背景色等。
4、custom属性是由用户实现的控件属性。
事件
事件是用于向控件的容器发送通知信息的。例如当点击鼠标或发生其他事件时,控件用事件通知容器。共有两种基本类型的事件:
1、 stock事件是由ActiveX控件开发工具实现的,可以像调用fireError等函数那样调用stock事件。
2、 custom事件是由用户实现的,尽管在实现过程中MFC和ATL类库以及Visual C++做了大量的工作。
方法
由ActiveX控件实现的方法类似于自动化中所述的自动化实现的方法。实际上,方法主要是使用IDispatch接口通过自动化来实现的。
用MFC构件的ActiveX控件总是通过IDispatch来提供它的方法,而用ATL构建的控件为了提供组件的方法,既可以使用双工接口,也可以使用定制接口。

ActiveX控件的更多相关文章

  1. 第18讲——ActiveX控件

    1,容器应用程序是可以嵌入或链接对象的应用程序.服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序. 2,可以安装一个TstCon32来测试ActiveX控件 3,可以用 Invalid ...

  2. ActiveX控件之ActiveXObject is not defined

    ActiveX控件方便用户在网页中插入各种效果,但是并不是所有浏览器都支持该控件. ActiveX是微软独有的,只有基于IE内核的浏览器才能使用. 当出现如上错误,可以将通过该控件创建的对象定义为本地 ...

  3. 用C#开发ActiveX控件,并使用web调用

    入职差不多两个月了,由学生慢慢向职场人做转变,也慢慢的积累知识,不断的更新自己.最近的一个项目里边,涉及到的一些问题,因为SDK提供的只是winform才能使用了,但是有需求咱们必须得完成啊,所以涉及 ...

  4. .net下开发ActiveX控件

    `   ActiveX 是一个开放的集成平台,为开发人员. 用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内容的方法. 使用 ActiveX, 可 ...

  5. ActiveX控件打包、签名、嵌入详解

    ActiveX控件打包.签名.嵌入详解 前言 在我们的一个项目中,使用到了大华网络监控摄像头枪机,网络上下载了其ActiveX插件,但是发现其所提供的类库没有打包处理.这就导致我们每次给用户安装的时候 ...

  6. ATL开发 ActiveX控件的 inf文件模板

    ATL开发 ActiveX控件的 inf文件模板    

  7. C#ActiveX控件开发学习

    一:C#ActiveX控件开发注意事项   1:C#开发的ActiveX控件只可在装有Framework的系统上才能用. 2:只有IE浏览器支持. 3:初次安装需要导入代码签名证书及其证书链的方式, ...

  8. 使用C#开发ActiveX控件(新)

    前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...

  9. C# 在 vs2010 上开发 ActiveX 控件 【千辛万苦啊~】

    由于B/S项目中需要使用到读卡器的功能,但是由于厂家只有提供一个 读卡的dll,那么怎样能在客户端使用读卡器呢,那么进过一番查找,最总决定使用ActiveX 控件来做.由于是第一次接触到 Active ...

  10. 在此页上的ActiveX控件和本页上的其他部分的交互可能不安全,你想允许这种交互吗

    转自 http://www.cnblogs.com/zdxster/archive/2011/01/27/1945868.html 在EOS6的项目中,如果采用VC++开发的ActiveX,那么第一次 ...

随机推荐

  1. bzoj1564: [NOI2009]二叉查找树

    dp. 首先这棵树是一个treap. 权值我们可以改成任意实数,所以权值只表示相互之间的大小关系,可以离散化. 树的中序遍历是肯定确定的. 用f[l][r][w]表示中序遍历为l到r,根的权值必须大于 ...

  2. UVa 340 Master-Mind Hints

    蛋疼的题目描述,看了好长好长时间才看懂,题目本身是很简单的. Designer给出一串长度为N的Code,Breaker用Guess来破译. 对于两串数字,如果有同一列相等的数字,那么叫做strong ...

  3. hdu 4622 Reincarnation trie树+树状数组/dp

    题意:给你一个字符串和m个询问,问你l,r这个区间内出现过多少字串. 连接:http://acm.hdu.edu.cn/showproblem.php?pid=4622 网上也有用后缀数组搞得. 思路 ...

  4. ios中get,post和解压缩用法

    一. 网络概念 1. 在Linux系统上,运行的Web服务器的名字叫做Apache 2. 所有的http访问都是基于html或者相关的文件,例如:php,asp,jsp,asp.net 这些文件最终都 ...

  5. 【英文】Bingo口语笔记(18) - Cover系列

    cover charge 服务费 cover version 翻唱版本 cover the news 头条新闻

  6. lseek()函数

    lseek()有个特殊的用途,确定文件是常规文件还是设备.<pre lang="c" escaped="true">off_t currpos;ou ...

  7. liunx之tar 命令

    tar命令 可以用来压缩打包单文件.多个文件.单个目录.多个目录. Linux打包命令_tar tar命令可以用来压缩打包单文件.多个文件.单个目录.多个目录. 常用格式: 单个文件压缩打包 tar ...

  8. oracle之检查点(Checkpoint)

    检查点是一个数据库事件,它把修改数据从高速缓存写入磁盘,并更新控制文件和数据文件.检查点分为三类:1)局部检查点:单个实例执行数据库所有数据文件的一个检查点操作,属于此实例的全部脏缓存区写入数据文件. ...

  9. android 拦截事件

    在做布局文件时,经常会有布局组件压在其它组件上面,这样点击上面布局没有控件的部分就会点中下面布局的控件. 如何拦截事件不让事件传递到下一层呢? 布局组件onTouchEvent() 用于处理事件,返回 ...

  10. suse linux中apache+php服务器安装

    主站下载源码 tar zxvf httpd-2.2.4.tar.bz2cd httpd-2.2.4 ./configure --prefix=/usr/local/apache --sysconfdi ...