【发布时间】:2011-06-30 04:20:22
【问题描述】:
为什么QueryInterface() 调用后总是跟Release() 调用?例如,我从 MSDN 中看到了一个示例代码,如下所示:
HRESULT hr = S_OK;
CDecoder *pObj = new CDecoder(&hr);
if (SUCCEEDED(hr))
{
*ppv = NULL;
hr = pObj->QueryInterface(riid, ppv);
}
pObj->Release();
return hr;
有人可以在这里解释Release() call 背后的意图吗?
【问题讨论】:
-
那个代码很不寻常。这看起来像是对 COM 细节的 C++ 混淆。
标签: c++ com object interface queryinterface