COM学习笔记(六):类厂

COM组件的创建通常涉及类厂,CoCreateInstance实际并不直接创建组件,而是通过类厂完成。类厂(IClassFactory)用于创建其他组件,每个特定的类厂对应特定的CLSID。CoGetClassObject用于获取类厂,然后通过IClassFactory创建组件。在某些场景下,如需要不同接口创建组件或提高效率,CoGetClassObject比CoCreateInstance更为适用。组件的创建过程包括调用DllGetClassObject函数来获取类厂。
摘要由CSDN通过智能技术生成

类厂:CoCreateInstance实际上并没有直接创建COM组件,而是创建了一个被称作是类厂的组件。而所需的组件正是由此类厂创建的。类厂组件的唯一功能就是创建其他的组件.更精确的讲,某个特定的类厂将创建只同某个特定的CLSID相应的组件。创建组件的标准接口是IClassFactory,用CoCreateInstance创建的组件实际上是通过IClassFactory创建的。通过类厂直接创建组件的过程第一步是创建类厂本身,然后再使用一个接口如IClassFactory来创建所需的组件。

CoGetClassObject将接收一个CLSID作为参数并返回指向所创建的组件中某个接口的指针。声明如下:

HRESULT __stdcall CoGetClassObject(

const CLSID& clsid,

DWROD dwClsContext,

COSE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值