深入解析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
超级会员免费看
订阅专栏 解锁全文
74

被折叠的 条评论
为什么被折叠?



