通过上一篇的学习和实践,已经知道COM是怎么一回事了,并且知道如何调用COM组件。
总结一下:COM是component object model,组件对象模型的意思,com对象和com类不同于一般c++或vb或delphi中的对象和类,COM对象和COM类是独立于编程语言的,自有一套内存布局规范,所以可以实现二进制级的功能性重用,COM诞生的目的就是这个:跨越编程语言与开发平台的模块重用。(虽然目前.Net平台很好的解决了不同编程语言间的模块重用,比如vb.net和c#.net之间的重用,但那种重用是基于microsoft intermediate language的,不是本机代码级别的,.Net Framework其实就是一个运行时)
上一篇调用windows shell接口来说明了客户端是如何调用COM服务的,可以看出windows shell提供的接口就是标准的COM接口,可以很方便的进行shell编程,shell编程是比较有意思的,可以通过操作系统给出的接口对操作系统进行定制,但windows操作系统平台给出的官方shell接口并不多。
1 首先用CoInitialize函数初始化COM环境,返回HRESUTL,使用SUCCEDED或FAILED宏来检测初始化是否成功
2 使用CoCreateInstance函数创建一个你想要的组件对象,并赋给你提供的一个接口。
3 使用该接口进行操作,如果要使用其他接口可以使用QueryInterface来查询其他接口
4 UnInitialize()卸载COM环境