STDMETHODIMP CoFoldersMonitor::NDQueryInterface(REFIID riid, void **ppv) { if (IsEqualIID(IID_IDispatch, riid)) { return FinishQI(static_cast<IDispatch*>(this), ppv); } else if (IsEqualIID(IID_IFoldersMonitor, riid)) { com::Trace(L"[%s] : %s", __FUNCTIONW__, L"Query for: IID_IFoldersMonitor\n"); return FinishQI(static_cast<IFoldersMonitor*>(this), ppv); } else if (IsEqualIID(IID_IConnectionPointContainer, riid)) { return FinishQI(static_cast<IConnectionPointContainer*>(this), ppv); } else { return com::base::CUnknown::NDQueryInterface(riid, ppv); } }
// // Nondelegating IUnknown // - Override to handle custom interfaces. // STDMETHODIMP CUnknown::NondelegatingQueryInterface(REFIID riid, void** ppVoid) { // CUnknown supports only IUnknown. if (riid == IID_IUnknown) { return (FinishQI(reinterpret_cast<IUnknown*> (static_cast<INondelegatingUnknown*>(this)), ppVoid)); } *ppVoid = NULL; return (E_NOINTERFACE); }
// // Nondelegating IUnknown // - Override to handle custom interfaces. // HRESULT STDMETHODCALLTYPE CAxUnknown::NondelegatingQueryInterface(const IID& iid, void** ppv) { // CAxUnknown supports only IUnknown. if (iid == IID_IUnknown) { return FinishQI(reinterpret_cast<IUnknown*> (static_cast<INondelegatingUnknown*>(this)), ppv) ; } else { *ppv = NULL ; return E_NOINTERFACE ; } }