Freigeben über


IKsPin::KsQueryMediums-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die KsQueryMediums -Methode ruft die von einer Pin unterstützten Medien ab.

Syntax

HRESULT KsQueryMediums(
  [out] KSMULTIPLE_ITEM **ppmi
);

Parameter

ppmi [out]

Adresse eines Zeigers auf eine KSMULTIPLE_ITEM-Struktur .

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, wird ein HRESULT-Fehlercode zurückgegeben.

Bemerkungen

Diese Methode gibt eine aufgabenseitig zugeordnete KSMULTIPLE_ITEM-Struktur zurück, auf die null oder mehr REGPINMEDIUM-Strukturen folgen. Der Count-Member der KSMULTIPLE_ITEM-Struktur gibt die Anzahl der REGPINMEDIUM-Strukturen an. Jede REGPINMEDIUM-Struktur definiert ein Medium, das vom Pin unterstützt wird.

Der Aufrufer muss die zurückgegebenen Strukturen mithilfe der CoTaskMemFree-Funktion freigeben.

Sie müssen Ks.h vor Ksproxy.h einschließen.

Beispiele

Die folgende Hilfsfunktion versucht, eine Pin mit einem angegebenen Medium abzugleichen.

HRESULT FindMatchingMedium(
    IPin *pPin, 
    REGPINMEDIUM *pMedium, 
    bool *pfMatch)
{
    IKsPin* pKsPin = NULL;
    KSMULTIPLE_ITEM *pmi;

    *pfMatch = false;
    HRESULT hr = pPin->QueryInterface(IID_IKsPin, (void **)&pKsPin);
    if (FAILED(hr)) 
        return hr;  // Pin does not support IKsPin.

    hr = pKsPin->KsQueryMediums(&pmi);
    pKsPin->Release();
    if (FAILED(hr))
        return hr;  // Pin does not support mediums.

    if (pmi->Count) 
    {
        // Use pointer arithmetic to reference the first medium structure.
        REGPINMEDIUM *pTemp = (REGPINMEDIUM*)(pmi + 1);
        for (ULONG i = 0; i < pmi->Count; i++, pTemp++) 
        {
            if (pMedium->clsMedium == pTemp->clsMedium) 
            {
                *pfMatch = true;
                break;
            }
        }
    }        
    CoTaskMemFree(pmi);
    return S_OK;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Ksproxy.h
Bibliothek
Strmiids.lib

Siehe auch

Fehler- und Erfolgscodes

IKsPin-Schnittstelle

WDM-Klassentreiberfilter