STDMETHODIMP CFolderDialog::QueryInterface(REFIID iid, LPVOID* ppvRet) { if (ppvRet==NULL) return E_INVALIDARG; //BFTRACE(_T("CFolderDialog(%p)::QueryInterface(%s)\n"),this,_TR(iid)); HRESULT hr = ExternalQueryInterface(&iid, ppvRet); //BFTRACE(_T(">CFolderDialog::QueryInterface returns %s, *ppv=%p\n"),_TR(hr),*ppvRet); return hr; }
STDMETHODIMP CComObject::ComQueryInterface(LPUNKNOWN pUnk, REFIID iid, LPVOID* ppvObj) { if ( iid == IID_IDispatch ) { const IID* pIID; if ( m_pDispatchMap.Lookup( pUnk, pIID ) ) { *ppvObj = pUnk; ComAddRef( pUnk ); return S_OK; } } return ExternalQueryInterface( &iid, ppvObj ); }