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