类厂:CoCreateInstance实际上并没有直接创建COM组件,而是创建了一个被称作是类厂的组件。而所需的组件正是由此类厂创建的。类厂组件的唯一功能就是创建其他的组件.更精确的讲,某个特定的类厂将创建只同某个特定的CLSID相应的组件。创建组件的标准接口是IClassFactory,用CoCreateInstance创建的组件实际上是通过IClassFactory创建的。通过类厂直接创建组件的过程第一步是创建类厂本身,然后再使用一个接口如IClassFactory来创建所需的组件。
CoGetClassObject将接收一个CLSID作为参数并返回指向所创建的组件中某个接口的指针。声明如下:
HRESULT __stdcall CoGetClassObject(
const CLSID& clsid,
DWROD dwClsContext,
COSE