一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
摘要: COM:对象组件模型 和语言无关,可以在 C++ 中用类的方式来定义。一个 COM 对象可以实现多个接口。 IUnknown:未直接口 一个特殊的接口,所有COM接口都继承IUnKnown这个接口。 1 interface IUnknown{ 2 HRESULT QueryInterface( // 阅读全文
posted @ 2021-08-16 15:54 一杯清酒邀明月 阅读(479) 评论(0) 推荐(0)
摘要: COM组件其实是一种特殊的类,遵循一个统一的标准,使到各个软件都可以通过某种方法访问这个类的函数和方法,也就可以做到组件通用. com就是统一的标准--通过接口来调用com组件.接口是你的com组件能被外界所感知的部分,实际就是一组方法(虚函数). IUnknown是所有接口的基础,他负责两项工作: 阅读全文
posted @ 2021-08-16 13:52 一杯清酒邀明月 阅读(1065) 评论(0) 推荐(0)
摘要: COM组件有三个最基本的接口类,分别是IUnknown、IClassFactory、IDispatch。 COM规范规定任何组件、任何接口都必须从IUnknown继承,IUnknown包含三个函数,分别是 QueryInterface、AddRef、Release。这三个函数是无比重要的,而且它们的 阅读全文
posted @ 2021-08-16 13:48 一杯清酒邀明月 阅读(913) 评论(0) 推荐(0)
摘要: 前言 组件对外公布的是接口;一个组件可以实现多个接口,也就是说可以对外公布多个接口,之前也总结过了,你很少会100%的去完全了解一个组件的所有接口,就像你去学习编程一样,你几乎不可能去成为编程中的全才。那么,既然我们不能去完全的了解一个组件提供的所有接口,那么我们在实际开发中,如何去判断一个组件是否 阅读全文
posted @ 2021-08-16 13:26 一杯清酒邀明月 阅读(562) 评论(0) 推荐(0)
摘要: AddRef和Release实现的是一种名为引用计数的内存管理技术,这种技术是使组件能够自己将自己删除的最简单同时也是效率最高的方法。COM组件将维护一个称作是引用计数的数值。当客户虫组件取得一个接口时,此数值增1,当客户使用完某个接口后,此数值将减1。当此数值为0时,组件即可将自己从内存中删除。 阅读全文
posted @ 2021-08-16 13:24 一杯清酒邀明月 阅读(746) 评论(0) 推荐(0)
摘要: 0. 基本介绍头文件:ocidl.hIConnectionPointContainer和IConnectionPoint接口都继承自IUnknown接口。 可连接对象支持以下功能: 传出接口,如事件集枚举传出接口的IID的能力连接和断开接收器与这些传出IID的对象的连接的能力枚举存在于特定传出接口的 阅读全文
posted @ 2021-08-16 10:04 一杯清酒邀明月 阅读(595) 评论(0) 推荐(0)
摘要: 1. 基本详情IDispatch是由OLE自动化协议暴露出来的接口。IDispatch可以由IUnknown得到,并且在IUnknown本身所含有三个方法(AddRef,Release和QueryInterface)上增加另外四个方法(GetTypeInfoCount,GetTypeInfo,Get 阅读全文
posted @ 2021-08-16 10:01 一杯清酒邀明月 阅读(3255) 评论(0) 推荐(0)
摘要: 1. COM编程基础COM是一种规范,而不是实现。 当使用C++来实现时,COM组件就是一个C++类,而COM接口就是继承至IUnknown的纯虚类,COM组件就是实现相应COM接口的C++类。 COM规范规定,任何组件或接口都必须从IUnknown接口中继承而来。IUnknown定义了3个重要函数 阅读全文
posted @ 2021-08-16 09:59 一杯清酒邀明月 阅读(4700) 评论(0) 推荐(1)
摘要: 1. 什么是接口说到COM,就不得不说接口了;在进行COM开发的过程中,可以说,一直都在和各种各样的接口打交道。那接口是什么?对于COM来说,接口是一个包含一个函数指针数组的内存结构,每一个数组元素包含的是一个由组件所实现的函数的地址;所以,对于COM,接口就是这样的一个内存结构,其它东西都是一些C 阅读全文
posted @ 2021-08-16 09:50 一杯清酒邀明月 阅读(1191) 评论(0) 推荐(0)
摘要: 1. 什么是组件一个组件同一个微型应用程序类似,即都是已经编译、链接好并可以使用的了,应用程序就是由多个这样的组件打包而得到的。各定制的组件可以在运行时同其他组件连接起来以构成某个应用程序。在需要对应用程序进行修改或改进时,只需要将构成此应用程序的组件中的某个用新的版本替换掉即可。 2. COM组件 阅读全文
posted @ 2021-08-16 09:44 一杯清酒邀明月 阅读(663) 评论(0) 推荐(0)
摘要: STDMETHOD_是一个宏,用于定义指定返回类型的接口方法,包含virtual关键字。可用于定义方法声明。 #define STDMETHOD_(type,menthod) virtual type STDMETHODCALLTYPE menthod 例如: STDMETHOD_ (ULONG, 阅读全文
posted @ 2021-08-16 09:40 一杯清酒邀明月 阅读(653) 评论(0) 推荐(0)
摘要: 要在C++中处理COM的事件,首先查询IConnectionPointContainer接口。然后调用接口上的FindConnectionPoint查找你需要的事件接口。然后使用IConnectionPoint::Advise将事件函数绑定到你自己的事件接口上去。如果不在使用。通过调用UnAdvic 阅读全文
posted @ 2021-08-16 09:39 一杯清酒邀明月 阅读(268) 评论(0) 推荐(0)