Пример из Д.Бокса
STDMETHODIMP GorillaClass::CreateInstance(IUnknown *pUnkOuter,
REFIID riid,
void** ppv)
{
*ppv = 0;
if(pUnkOuter !=0)
return CLASS_E_NOAGGREGATION;
Gorilla* p = new Gorilla;
if(p == 0)
return E_OUTOFMEMORY;
p->AddRef();
HRESULT hr = p->QueryInterface(riid, ppv);
p->Release();
return hr;
}
утверждается (автором), что "этот прием использует стандартную технологию заключения в скобки AddRef/Release
вызова QueryInterface". Я не понимаю зачем это нужно в данном случае, по моему вызовы излишни.
Может ли кто-нибудь из присутствующих господ меня разубедить?