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