Determinando qual interface um objeto dá suporte
[O recurso associado a esta página, Arquivos Personalizados e Manipuladores de Fluxo, é um recurso herdado. Ele foi substituído pela classe MediaStreamSource. A classe MediaStreamSource foi otimizada para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use a classe MediaStreamSource em vez de Manipuladores de Fluxo e Arquivos Personalizados, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
O método QueryInterface permite que um aplicativo consulte um objeto para determinar quais interfaces ele dá suporte. O aplicativo de exemplo define o ponteiro ppv para a interface atual.
STDMETHODIMP CAVIFileCF::QueryInterface(
const IID FAR& iid,
void FAR* FAR* ppv)
{
if (iid == IID_IUnknown)
*ppv = this; // set the interface pointer
// to this instance
else if (iid == IID_IClassFactory)
*ppv = this; // second chance to set the
// interface pointer to this
// instance
else
return ResultFromScode(E_NOINTERFACE);
AddRef(); //Increment the reference count
return NULL;
}