我们都知道,COM组件编程中,QueryInterface实现的接口之间的查询,通过这个接口,我们可以获取该组件中其他的接口。但
是,QueryInterface实现的原理,并不是大家都很清楚,也没有哪本书仔细讲了这点。我将个人心得写下来,供有需要的人查看。首先,我们看一下
基本的COM实现。一般来说,COM是 通过多继承实现多个接口,如下图
而对应的QueryInterface实现如下
HRESULT 实现类::QueryInterface(
const
IID
&
iid,
void
**
ppv)
...
{