Método IKsPin::KsQueryMediums
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
El KsQueryMediums
método recupera los medios admitidos por un pin.
Sintaxis
HRESULT KsQueryMediums(
[out] KSMULTIPLE_ITEM **ppmi
);
Parámetros
-
ppmi [out]
-
Dirección de un puntero a una estructura de KSMULTIPLE_ITEM .
Valor devuelto
Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, devuelve un código de error HRESULT .
Observaciones
Este método devuelve una estructura de KSMULTIPLE_ITEM asignada por tareas, seguida de cero o más estructuras REGPINMEDIUM . El miembro Count de la estructura KSMULTIPLE_ITEM especifica el número de estructuras REGPINMEDIUM . Cada estructura REGPINMEDIUM define un medio admitido por la patilla.
El autor de la llamada debe liberar las estructuras devueltas mediante la función CoTaskMemFree .
Debe incluir Ks.h antes de Ksproxy.h.
Ejemplos
La siguiente función auxiliar intenta hacer coincidir una patilla con un medio especificado.
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;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
Biblioteca |
|
Consulte también