11、深入解析COM对象实现与ATL的应用

深入解析COM对象实现与ATL的应用

1. 实现COM对象的基础

在设计好接口并声明了组件类(coclass)之后,下一步就是以编程方式实现对这些接口的支持。这里我们继续使用广泛应用的C++语言来实现代码。C++在实现COM服务器方面广受欢迎,可能是因为它对多重继承的支持使得在一个类中支持多个接口变得轻松。

1.1 使用多重继承

COM对象通常需要支持多个接口,C++的多重继承特性让在类中支持多个接口变得便捷。只需将每个接口声明为实现类的基类即可,示例代码如下:

class CVcr : public IVideo, public ISVideo 
{
  ... 
}; 

虽然支持多个接口还有其他方式,但多重继承是目前最常用的技术。

由于接口仅包含纯虚方法,包含纯虚方法的类无法实例化。因此,需要将IVideo、ISVideo接口及其基接口IUnknown的所有纯虚方法声明为类的具体方法,示例如下:

class CVcr : public IVideo, public ISVideo 
{
public: 
    // IUnknown interface 
    STDMETHOD(QueryInterface)(REFIID iid, void** pp); 
    STDMETHOD_(ULONG, AddRef)(); 
    STDMETHOD_(ULONG, Release)(); 
    // IVideo interface 
    STDM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值