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 |
|
Bibliothek |
|
Siehe auch