COM IUnknown,在调用CoGetClassObject之前是否首先需要指向它的指针?

COM IUnknown,在调用CoGetClassObject之前是否首先需要指向它的指针?,object,com,iunknown,Object,Com,Iunknown,在COM中,当您想要创建某个COM服务器对象的实例时,是否首先需要获取指向其IUnknown接口的指针,然后才使用CoGetClassObject创建类对象 据我所知,IUnknown用于管理对象的生命周期,因此据我所知,无论客户机想要创建什么对象,都需要一个指向其IUnknown接口实现的指针 听起来正确吗?如果没有,有人能告诉我它是如何工作的吗?IUnknown管理现有COM对象的寿命。在创建对象之前,没有可谈论的IUnknown指针 CoGetClassObject用于为预期创建感兴趣对象

在COM中,当您想要创建某个COM服务器对象的实例时,是否首先需要获取指向其IUnknown接口的指针,然后才使用CoGetClassObject创建类对象

据我所知,IUnknown用于管理对象的生命周期,因此据我所知,无论客户机想要创建什么对象,都需要一个指向其IUnknown接口实现的指针


听起来正确吗?如果没有,有人能告诉我它是如何工作的吗?

IUnknown
管理现有COM对象的寿命。在创建对象之前,没有可谈论的
IUnknown
指针

CoGetClassObject
用于为预期创建感兴趣对象的对象获取
IUnknown
接口。也就是说,它是一个对象工厂,通常实现
IClassFactory
,它声明用于创建对象的
CreateInstance
方法


与显式使用类工厂不同,只调用
CoCreateInstance

通常更简单,因此客户端只能在COM中使用实现IUnknown的对象?Tony:所有对象都必须实现
IUnknown
。这个接口本身不是很有用,但它声明了
QueryInterface
方法,可以让您发现对象支持的其他接口。
IUnknown
本身很有用,因为它有助于跟踪对象的生存期。@sharptooth:我没有说它本身没有用处。