Méthode IKsPin::KsQueryMediums
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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 KsQueryMediums
méthode récupère les supports pris en charge par une broche.
Syntaxe
HRESULT KsQueryMediums(
[out] KSMULTIPLE_ITEM **ppmi
);
Paramètres
-
ppmi [out]
-
Adresse d’un pointeur vers une structure KSMULTIPLE_ITEM .
Valeur renvoyée
Si la méthode réussit, retourne S_OK. En cas d’échec, elle retourne un code d’erreur HRESULT .
Notes
Cette méthode retourne une structure KSMULTIPLE_ITEM allouée à une tâche, qui est suivie de zéro ou plusieurs structures REGPINMEDIUM . Le membre Count de la structure KSMULTIPLE_ITEM spécifie le nombre de structures REGPINMEDIUM . Chaque structure REGPINMEDIUM définit un support pris en charge par la broche.
L’appelant doit libérer les structures retournées à l’aide de la fonction CoTaskMemFree .
Vous devez inclure Ks.h avant Ksproxy.h.
Exemples
La fonction d’assistance suivante tente de faire correspondre une épingle à un support spécifié.
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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows 2000 Server [applications de bureau uniquement] |
En-tête |
|
Bibliothèque |
|
Voir aussi