Udostępnij za pośrednictwem


Określanie interfejsu obsługiwanego przez obiekt

[Funkcja skojarzona z tą stroną, niestandardowe programy obsługujące pliki i strumienie, jest starszą funkcją. Został zastąpiony przez klasę MediaStreamSource. klasy MediaStreamSource została zoptymalizowana pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał klasy MediaStreamSource zamiast niestandardowych programów obsługi plików i strumieni, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Metoda QueryInterface umożliwia aplikacji wykonywanie zapytań względem obiektu w celu określenia, które interfejsy obsługuje. Przykładowa aplikacja ustawia wskaźnik ppv na bieżący interfejs.

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