List 2-18 CClassFactory::CreateInstanceメソッドの実装

  1: HRESULT __stdcall CClassFactory::CreateInstance(IUnknown* pUnknownOuter, REFIID riid, void** ppvObj)
  2: {
  3:     HRESULT hr;    // メソッドの実行結果を保持する
  4: 
  5:     // CDictionaryオブジェクトを生成する
  6:     CDictionary *pCDictionary = new CDictionary;
  7:     if ( pCDictionary == NULL)
  8:         return E_OUTOFMEMORY;
  9:     // インタフェースを取得する
 10:     hr = pCDictionary->QueryInterface(riid,ppvObj);
 11:     // インタフェースの取得に失敗した場合CDictionaryオブジェクトを解放する
 12:     if( hr != S_OK)
 13:         pCDictionary->Release();
 14:     return hr;
 15: }