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: }