除了构造函数以外,这两个模板提供的功能一模一样。
一般来说,
CComQIPtr提供了几乎所有CComPtr的功能,但是有唯一一个例外,
CComQIPtr<
IUnknown>是不合法的,template <class T, const IID* piid = &__uuidof(T)>class
CComQIPtr 的构造符重复定义。
必须写成
CComQIPtr<
IUnknown, &IID_
IUnknown>。
除此之外,其他CComPtr都可以用
CComQIPtr代替。