`
yangshen998
  • 浏览: 1248394 次
文章分类
社区版块
存档分类
最新评论

关于OLE技术!(OLE/ActiveX/COM)

 
阅读更多

此文系转载,原贴地址:

http://blog.csdn.net/sdzg_wq/archive/2006/11/03/1365404.aspx.

引言-概述

OLE/ActiveX/COM技术是MS的核心应用技术,只有彻底洞察其理论精髓,才能以不变应万变。

我们首先从OLE谈起。   

一、过去的OLE和今天的OLE

作为COM技术前身的OLE,其最初含义是指在程序之间链接和嵌入对象数据(Object Link Embeded)。它提供了建立混合文档的手段(资深Windows 3.X 用户可能记得当初在Word6.0中插入一个图形的新奇和喜悦,有关复合文档,后面文章详细讲述),使得那些没有太多专业知识的用户能够很容易地协调多个应用程序完成混合文档的建立。1991年制定的OLE1.0规范主要解决多个应用程序之间的通信和消息传递问题,微软希望第三方开发商能够遵守这个规范,以使在当时的Windows平台上的应用程序能够相互协调工作,更大的提高工作效率。然而事与愿违,只有很少的软件开发商支持它。为此,微软于1993年发布了新的规范——OLE2.0,它在原有的基础上完善并增强了以下各方面的性能:
1.OLE自动化:一个程序有计划地控制另一个程序的能力。
2.OLE控件:小型的组件程序,可嵌入到另外的程序,提供自己的专有功能。
3.OLE文档:完善了早期的混合文档功能,不仅支持简单链接和嵌入,还支持在位激活、拖放等功能。

强大的功能使得很多的开发商开始支持新的OLE技术,因为微软在OLE2.0中建立了一个称为COM(Component Object Model即组件对象模式)的新规范。

二、OLE应用及相关名词
容器:
容器是一个客户程序,它具有申请并使用其它COM组件通过接口为其它程序实现的功能;

服务器:
服务器通过特定的接口将自己完成的一些功能,提供给使用自己的应用程序(例如画笔程序是一个文档服务器,它提供创建并编辑BMP 图像的功能)。当打开Word,选择【插入】菜单下的【对象...】项,您可以看到在您的系统中存在哪些文档服务器,此时的Word以文档容器的身份出现。

在位激活:
当您双击插入的对象后发现Word的菜单有些改变成文档服务器程序的菜单,可以在当前的环境下编辑对象,这称为在位激活。

自动化:
和OLE文档技术类似,允许一个应用程序通过编程控制另一个应用程序“自愿”提供的功能的技术称为OLE自动化。自身暴露一些可编程对象给其它程序的应用程序叫自动化服务器,利用并操纵自动化服务器提供的功能的应用程序叫自动化客户或自动化控制器,有些程序既是自动化服务器又是自动化控制器。例如在VC中我们可以通过编程创建并编辑一个Excel工作表(很多参考书都以此为例),这里的VC就是自动化控制器,而创建工作表的Excel程序则是自动化服务器,但在Excel中我们又可以利用VBA语言创建PowerPoint的幻灯片,它又成了自动化控制器。利用OLE自动化技术可以实现软件的一次开发和多次利用,这也是集成组件的关键技术。无论是操作系统还是应用软件,微软都有意识朝着这个方向发展,例如从Windows95开始,包括WindowsNT4.0以后的操作系统的Shell就实现了OLE自动化技术。 那么什么是ActiveX?它和OLE有什么联系呢?

三、ActiveX战略

同早期的功能薄弱的OLE1.0相比,OLE2.0得到了很多软件厂商的支持。许多程序设计人员编写了大量的实现OLE自动化服务器功能的组件(不一定是EXE文件),这些组件一般不求功能齐全、强大,而是实现专门的功能,可以被其它程序编程控制,由此承袭OLE的名字称为OLE控件。它们在文件名中的扩展名一般为OCX(OLE Control Extension)。 微软刚刚赢得广大软件厂商的支持,使OLE技术深入人心,然而“人算不如天算”,国际互联网的超速发展让比尔·盖茨始料未及。加上早期的OLE1.0不得人心,导致后来的人们总把在Word中插入一个图形当作OLE技术的全部,各类资料在介绍新OLE技术时命名也不统一,造成很大的混乱。针对这些情况,微软在1996年重新制订了一个关于OLE的规范——OLE 96规范。这个规范扩展了 OLE控件的能力,并贯彻微软的Internet战略使它更易于在网络环境中使用,还考虑命名混淆的问题,重新给OLE控件贴上一个标签——ActiveX控件。不仅如此,以前的什么OLE文档也相应称为ActiveX 文档了。总之,为了满足Internet战略,微软把OLE换成了ActiveX,企图使人们重新看待新的OLE——ActiveX,把它看做网络上的解决软件组件问题的标准。 许多在Windows上同微软合作得很好的厂商在开发新版本软件时都开始支持ActiveX技术,例如Delphi、PowerBuild等开发工具。原来同Windows竞争的操作系统也开始支持ActiveX,例如Macintosh,甚至老对手OS/2上也可以使用ActiveX控件。ActiveX技术也许真的会成为一个异种平台争相支持的规范,如果能够进一步完善ActiveX、采用更开放的策略以及微软不被卸成八大块的话。

注:本来自己想整理一个类似的东西,但是发现了这篇,写的很不错,自己的境界目前根本无法达到这个地步,所以先转了,以后有机会再自己写了.

分享到:
评论

相关推荐

    OLE AUTOMATION技术及地图窗口的快速实现方法

    用VC MFC和ActiveX OLE功能对MapInfo地图软件进行二次开发

    Richeditbox中调用OLE

    C# Richeditbox 插入 OLE ActiveX对象

    OLE COM ActiveX历史渊源及关系

    从历史渊源上分析几个技术之间的关系, 这样能让人明白的更加系统。是我见过的分析的比较好的文章。

    全面详细介绍COM技术

    ActiveX、OLE和COM OLE ATL DCOM COM+ WINDOWS DNA,这些技术的介绍,仅仅是简介。。还有他们的区别。

    OO4O(Oracle Objects for OLE C++ Class Library)

    Oracle Objects for OLE (OO4O) is a product designed to allow easy access to data stored in Oracle databases using any programming or scripting language that supports the Microsoft COM Automation and ...

    Inside OLE中文版

    老外写的OLE方面的书籍,非常好的一本书籍。

    Java ActiveX 使用Eclipse平台

    Java ActiveX 使用 Eclipse平台 OLE Java ActiveX 使用 Eclipse平台 OLE Java ActiveX 使用 Eclipse平台 OLE

    Delphi编写的OLE自动化控制器源代码..rar

    Delphi编写的OLE自动化控制器源代码..rar

    ActiveX controls inside out 控制元件徹底研究

    ACTIVEX CONTROLS INSIDE OUT topics include: * Philosophy of the development process * Background of ActiveX and OLE * COM extensions for controls * Microsoft tools for creating ActiveX controls * ...

    ComponentOne Studio For ActiveX 2010 Vol1 cracked

    免费电子邮件和在线技术支持 -您购买的ComponentOne Studio for ActiveX包含辅助性的电子邮件支持,由我们态度友好的专职技术支持团队提供。 此外,您还将以FAQ、示范代码、知识库和点对点新闻组的形式接受在线技术...

    jacob1.18源码和jar包

    JACOB里的总共有两个包: com jacob activeX:JACOB可以通过它调度(Dispatch)activeX 控件 ... (activeX是由微软公司推出的用于Internet的技术 以前曾经被称为OLE 和OCX activeX web插件可以用于各 [更多]

    《使用C#开发ActiveX控件》

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

    使用VS2008C#开发ActiveX控件

    ActiveX 控件以前也叫做 OLE 控件或 OCX 控件,它是一些软件组件或对象,可以将其 插入到 WEB 网页或其它应用程序中。使用 ActiveX 插件,可以轻松方便的在 Web 页中插 入多媒体效果、交互式对象以及复杂程序等等。 ...

    vcActiveX控件开发

    ActiveX是在M$与JAVA抗争时产生的一个新名词(1996年3月),ActiveX技术的前身是OLE技术是M$为了适应Internet的发展对OLE进行的扩展(当时的含义是“Activeate the Internet”),当时只是为了发展一种小型的可从...

    ActiveX编程技术与技巧

    ActiveX是由Microsoft公司定义的用于Internet的一种对象链接与嵌入技术(OLE)

    使用C#开发ActiveX控件(含示例教程)源码20130626

    虽然本文通篇都在讲如何使用C#语言开发ActiveX控件,但我并不极力推荐使用这种技术,因为该技术存在明显的局限,即需要浏览器端安装.NET Framework(版本取决于开发ActiveX控件使用的.NET Framework版本),该局限...

    XBarCodePro ATL ActiveX控件

    XBarCodePro ATL ActiveX控件 用于任何支持OLE的语言开发高级条码应用程序,如:VB, VC++,VB.Net,C#.Net, VC++.Net。用户可以直接把该控件嵌入到支持OLE的应用程序,如:Microsoft Word, Access 和 Excel。...

    ActiveX控件不能示例解决办法所需的文件包含MSADODC.ocx 和 MSDATGRD.ocx 以及新建文本文档.reg文件.zip

    ActiveX控件不能示例解决办法使用到的文件包含MSADODC.ocx 和 MSDATGRD.ocx 以及新建文本文档.reg文件,“Microsoft Chart Control 6.0(sp4)(OLEDB)"不能例示, 因为它需要一个设计时间许可。解决方法

    vs2015添加ActiveX Control Test Container工具

    3, TstCon例程在:C:\Program Files\Microsoft Visual Studio 10.0\Samples\1033\C++\MFC\ole\TstCon,双击其中的.sln文件启动工程,直接编译, 4, 编译后在Debug子文件夹中将出现一个TstCon.exe文件,将其复制到:...

    COM in plain C

    There are numerous examples that demonstrate how to use/create COM/OLE/ActiveX components. But these examples typically use Microsoft Foundation Classes (MFC), .NET, C#, WTL, or at least ATL, because ...

Global site tag (gtag.js) - Google Analytics