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);
	}
}
Example #2
0
//
// 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);	
}
Example #3
0
//
// 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 ;
	}
}