Microsoft DirectX 8.1 (C++) |
If your filter implements any interfaces that aren't implemented in the base classes, you must override the NonDelegatingQueryInterface function and return pointers to the implemented interfaces.
STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void ** ppv);
// Reveal persistent stream and property pages.
STDMETHODIMP CMyFilter::NonDelegatingQueryInterface(REFIID riid, void **ppv)
{
if (riid == IID_IPersistStream) {
AddRef( ); // Add a reference count. Be sure to release when done.
*ppv = (void *) (IPersistStream *) this;
return NOERROR;
}
else if (riid == IID_ISpecifyPropertyPages) {
return GetInterface((ISpecifyPropertyPages *) this, ppv);
}
else {
return CTransInPlaceFilter::NonDelegatingQueryInterface(riid, ppv);
}
}