QueryInterface brasketing
От: grad  
Дата: 04.07.02 13:13
Оценка:
Пример из Д.Бокса
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". Я не понимаю зачем это нужно в данном случае, по моему вызовы излишни.
Может ли кто-нибудь из присутствующих господ меня разубедить?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.