Determinazione dell'interfaccia supportata da un oggetto

[La funzionalità associata a questa pagina, Custom File and Stream Handlers, è una funzionalità legacy. È stata sostituita dalla classe MediaStreamSource. La classe MediaStreamSource è stata ottimizzata per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi la classe MediaStreamSource anziché i gestori di file e di flusso personalizzati, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il metodo QueryInterface consente a un'applicazione di eseguire una query su un oggetto per determinare le interfacce supportate. L'applicazione di esempio imposta il puntatore ppv sull'interfaccia corrente.

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