CoGetClassObject,计算机语言,指的是创建了一个被称作是
类厂的组件。
CoCreateInstance实际上并没有直接创建COM
组件 ,而是创建了一个被称作是
类厂的组件。而所需的组件正是由些
类厂创建的。
类厂组件的唯一功能就创建其他的组件。创建组件的标准接口是IClassFactory,用CoCreateInstnce创建的组件实际上是通过IClassFactory创建的。
区别1:CoGetClassObject同CoCreatInstance是非常相似的。只一个参数不同,CoCreatInstance将接收一个Iunknown
指针,而CoGetClassObject则将接收一个COSERVERINFO指针。
区别2:CoGetClassObject返回的是指向
类厂中某个接口的
指针(客户可以用这个指针来创建所需的组件),而CoCreateInstance返回的则是指向组件中某个接口的指针。
为了创建同某个CLSID相应的
类厂,需要一个与CoCreateInstance等价的,也可以接收一个CLSID作为参数并返回相应类厂中某个接口
指针的函数。这个函数就是COM库中的CoGetClassObject。
类厂所支持的用于创建组件的标准接口是IClassFactory。大多数组件均可使用IClassFactory接口来创建。
STDAPI CoGetClassObject(REFCLSID rclsid,DWORD dwClsContext,COSERVERINFO * pServerInfo,REFIID riid,LPVOID * ppv);