COM和OLE有什么区别,如果有的话?
OLE =对象链接和嵌入
DDE =动态数据交换
COM =组件对象模型
OLE:这是一种将一个文档的部分链接到另一个文档的部分的方法.例如,使用嵌入了Excel图表的PowerPoint幻灯片.更新Excel电子表格后,图表也应更新.当你重新打开PowerPoint时,它神奇地拥有了!(此示例是链接对象.)嵌入对象与外部文件中不存在Excel电子表格相同,电子表格的数据包含在PowerPoint文件中.
您可以使用链接对象将Excel,Word和PowerPoint文档相互嵌入.其他应用程序专门用于支持嵌入到Word中,例如Microsoft公式编辑器.
OLE 1构建在DDE上,它使用窗口消息在源数据更改时通知应用程序,并且通常使用HGLOBAL全局内存句柄传递数据.
OLE 2是在COM上构建的.
COM是一种语言中立的,面向对象的组件模型和基于DCE RPC的ABI.作为RPC系统,它支持在同一台机器上的进程之间进行远程调用,之后使用DCOM在不同的机器上进行远程调用.最初COM被用作MAPI体系结构的一部分(它使用COM对象模型,但不使用COM注册服务),然后作为一般对象模型正式启动,完成注册表和对象激活以及其他服务.(例如,Monikers和结构化存储.)
OLE自动化与OLE无关 - 它只是一个品牌连接.OLE自动化是COM的Visual Basic兼容子集,它仅支持基本数据类型(例如,没有无符号整数或结构),但包括对象(COM接口).
但是OLE控件与OLE相关.它们是主要针对Visual Basic用户的可视化组件,从VB 4开始,但可视化元素是使用OLE 2的嵌入工具提供的.它们也可以由任何能够托管OLE 2的东西托管(理论上,如果正确编写)嵌入式对象,也常用于C++应用程序.它们通常使用OLE自动化兼容接口在运行时进行编程.
从微软试图推广用于扩展Web应用程序的技术时起,ActiveX控件就是COM对象的营销术语.