Introduction to COM
COM 的基本概念
1. Interfaces: 在COM里,一个Interface是一个函数指针表,由Object来维护。所有Interface都是基于IUnknown。每个Interface都有一个唯一的Interface标识。IID
2. IUnknown: IUnknown定义了
QueryInterface:
AddRef:
Release:
3. Reference Counting: Object决定什么时候object不再被使用了,可以释放自己了。
4. QueryInterface: 尽管每个Interface都暴露了函数供外界使用,COM中一般还是通过IUnknown::QueryInterface来返回一个Interface。
HRESULT QueryInterface (REFIID iid, void **ppvObject);
5. Marshaling: 允许在一个进程的Object的Interface用在另外一个进程。一般认为线程间也是需要Marshaling.
6. Aggregation: 一种机制,允许一个COM作为另外一个COM的一部分来给用户使用。