COM IUnknown,在调用 CoGetClassObject 之前我是否需要先有一个指向它的指针?
在 COM 中,当您想要创建某个 COM Server 对象的实例时,是否首先需要获取指向它的 IUnknown 接口的指针,然后才使用 CoGetClassObject 创建一个类对象?
据我了解, IUnknown 用于管理对象生命周期,因此根据我的理解,无论客户端想要创建什么对象,都需要一个指向它的 IUnknown 接口实现的指针。
听起来正确吗?如果没有,谁能告诉我它是如何工作的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
IUnknown
管理现有COM 对象的生命周期。在对象创建之前,没有IUnknown
指针可言。CoGetClassObject
用于获取预期创建感兴趣对象的对象的IUnknown
接口。即,它是一个对象工厂,通常实现 IClassFactory,它声明用于创建对象的 CreateInstance 方法。与显式使用类工厂不同,直接调用 CoCreateInstance 通常更简单。
IUnknown
manages the lifespan of an existing COM object. Before the object is created, there is noIUnknown
pointer to speak of.CoGetClassObject
is used to get theIUnknown
interface for an object that is expected to create the objects of interest. I.e., it is an object factory, an usually implementsIClassFactory
, which declares theCreateInstance
method that you use to create objects.Instead of using class factories explicitly, it is often simpler to just call
CoCreateInstance
.