【发布时间】:2015-10-13 18:07:48
【问题描述】:
如果我创建任何 COM 接口的指针,然后将其分配给同一 COM 接口的 CComPtr 对象,是否需要释放原始 COM 指针?
ISomeComInterface* pSomeComInterface = new CSomeComInterfaceImplemented();
CComPtr<ISomeComInterface> cptrSomeComInterface = pSomeComInterface;
// ....
// Do I need to Release original COM Pointer.
pSomeComInterface->Release();
【问题讨论】:
-
你实现
CSomeComInterfaceImplemented了吗?或者知道它的引用计数是如何工作的?这个 ctor 是否创建了一个 COM 引用数量为 1 的非 COM 指针? -
class CSomeComInterfaceImplemented 实现了从 IUnknown 接口(间接)派生的接口 ISomeComInterface。