1: HRESULT __stdcall CClassFactory :: QueryInterface(REFIID riid, void** ppvObj)
2: {
3: if (IsEqualIID(riid ,IID_IUnknown) || IsEqualIID(riid ,IID_IClassFactory))
4: // IClassFactoryインタフェースのアドレスを*ppvObjポインタに設定する
5: *ppvObj = static_cast(this);
6: // *ppvObj = (IClassFactory*)this;と同じ
7: else
8: {
9: // インタフェースが見つからない場合
10: *ppvObj = NULL;
11: return E_NOINTERFACE;
12: }
13: // インタフェースが見つかったときには参照カウントを増やす
14: AddRef();
15: return S_OK;
16: }