How to 隐藏对COM接口的计数

客户端:使用智能指针和包装类

 

1。智能指针:简单说就是创建一个类,叫智能指针类,它封装了AddRef() 和 ReleaseRef().对使用这个类的人不用关心计数问题。具体做法:重载->操作符,把此调用转发给内部的接口指针去做。(聚合)

 

2。包装类:可以包含很多个接口,而且要实现所有接口。(包容)

 

 

 

服务器端(组件):

 

1。CUnkown类:做一个基类,让基类实现AddRef() 和 Release(), 这样继承它的组建就不用关系计数问题了。

组件继承后,要重载几个函数:

NondelegateQueryInterface(): 因为基类Cunkonwn不知道组建有什么接口,至于为什么是NondelegateQueryInterface,去看我的COM聚合那个Thread

Init() 创建内部组建用的,一样,基类可不知道你有什么内部组建

FinalRelease(), 释放内部组建。 。。。。。。。。。。。。。。。

 

2。 CFactory: IClassFactory

包含了一个FactoryData的数据结构的成员:可以调用组建里边定义的CreateInstance(),还提供一些组建信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值