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; 
}