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