Partager via


Détermination de l’interface prise en charge par un objet

[La fonctionnalité associée à cette page, Gestionnaires de fichiers personnalisés et de flux, est une fonctionnalité héritée. Il a été remplacé par la classe MediaStreamSource. La classe MediaStreamSource a été optimisée pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise la classe MediaStreamSource au lieu des gestionnaires de fichiers personnalisés et de flux, dans la mesure du possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La méthode QueryInterface permet à une application d’interroger un objet pour déterminer les interfaces qu’elle prend en charge. L’exemple d’application définit le pointeur ppv vers l’interface actuelle.

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