奇宝库 > 什么是组件对象模型组件类型?

什么是组件对象模型组件类型?

COM是基于组件对象方式概念来设计的,在基础中,至少要让每个组件都可以支持二个功能:这二个功能即为COM的根:IUnknown接口所提供的IUnknown::QueryInterface(),IUnknown::AddRef()及IUnknown::Release()三个方法的

COM是基于组件对象方式概念来设计的,在基础中,至少要让每个组件都可以支持二个功能:

这二个功能即为COM的根:IUnknown接口所提供的IUnknown::QueryInterface(),IUnknown::AddRef()及IUnknown::ReLEAse()三个方法的由来。所有的COM组件都要实现IUnknown,表示每个COM组件都有相同的能力。

只由COM派生实现出来的组件,称为纯COM组件。

但在Windows持续发展时,Visual Basic 4.0开始支持OCX,也就是OLE Custom Control,这让微软开始思考要如何让COM组件可以跨语言支持,在这样的要求下,必须要提供一个一致的接口,以及提供一组可以调用接口内方法的能力,由于纯COM组件只能够支持C/C++的直接访问,为了要达到跨语言的能力,在COM中必须要支持在外部调用内部方法的机能,这个机能造就了Invoke()方法,另外为了跨语言的支持,COM应该要提供简单的组件访问识别方式,这也就是会有GetIDsOfNames()的原因,将这些方法组合起来,定义出的必要接口,称为IDispatch接口,所有实现此接口的,都可以支持跨语言的支持。

微软将实现此接口的组件都称为自动化(Automation)组件。

本文来自网络,不代表本站立场,转载请注明出处: