Почему за вызовом 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 ()
здесь?