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

发布于 2024-09-02 08:38:25 字数 220 浏览 6 评论 0 原文

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

据我了解, IUnknown 用于管理对象生命周期,因此根据我的理解,无论客户端想要创建什么对象,都需要一个指向它的 IUnknown 接口实现的指针。

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

In COM, when you want to create an instance of some COM Server object, do you first need to get a pointer to it's IUnknown interface and only then create a class object using CoGetClassObject?

As far as I understand it, IUnknown is used to manage object lifetimes, so from my understanding, whatever object the client wants to create, one needs a pointer to it's IUnknown interface implementation first.

Sound correct? If not, can anyone tell me how it works?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

内心激荡 2024-09-09 08:38:25

IUnknown 管理现有COM 对象的生命周期。在对象创建之前,没有IUnknown指针可言。

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

与显式使用类工厂不同,直接调用 CoCreateInstance 通常更简单。

IUnknown manages the lifespan of an existing COM object. Before the object is created, there is no IUnknown pointer to speak of.

CoGetClassObject is used to get the IUnknown interface for an object that is expected to create the objects of interest. I.e., it is an object factory, an usually implements IClassFactory, which declares the CreateInstance method that you use to create objects.

Instead of using class factories explicitly, it is often simpler to just call CoCreateInstance.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文