造价通

反馈
取消

热门搜词

造价通

取消 发送 反馈意见

组件对象模型组件类型

2018/06/19222 作者:佚名
导读: COM是基于组件对象方式概念来设计的,在基础中,至少要让每个组件都可以支持二个功能:这二个功能即为COM的根:IUnknown接口所提供的IUnknown::QueryInterface(),IUnknown::AddRef()及IUnknown::Release()三个方法的由来。所有的COM组件都要实现IUnknown,表示每个COM组件都有相同的能力。只由COM派生实现出来的组件,称为

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)组件。

*文章为作者独立观点,不代表造价通立场,除来源是“造价通”外。
关注微信公众号造价通(zjtcn_Largedata),获取建设行业第一手资讯

热门推荐

相关阅读