Compartir a través de


Método IFilterMapper2::EnumMatchingFilters (strmif.h)

[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 EnumMatchingFilters método enumera los filtros registrados que cumplen los requisitos especificados.

Sintaxis

HRESULT EnumMatchingFilters(
  [out] IEnumMoniker       **ppEnum,
  [in]  DWORD              dwFlags,
  [in]  BOOL               bExactMatch,
  [in]  DWORD              dwMerit,
  [in]  BOOL               bInputNeeded,
  [in]  DWORD              cInputTypes,
  [in]  const GUID         *pInputTypes,
  [in]  const REGPINMEDIUM *pMedIn,
  [in]  const CLSID        *pPinCategoryIn,
  [in]  BOOL               bRender,
  [in]  BOOL               bOutputNeeded,
  [in]  DWORD              cOutputTypes,
  [in]  const GUID         *pOutputTypes,
  [in]  const REGPINMEDIUM *pMedOut,
  [in]  const CLSID        *pPinCategoryOut
);

Parámetros

[out] ppEnum

Recibe un puntero a la interfaz IEnumMoniker . Use este puntero de interfaz para recuperar monikers de filtro de la enumeración. El autor de la llamada debe liberar la interfaz .

[in] dwFlags

Reservado, debe ser 0.

[in] bExactMatch

Valor booleano que indica si se requiere una coincidencia exacta. Vea Comentarios para obtener más información.

[in] dwMerit

Valor mínimo de mérito. La enumeración excluye filtros con un valor de mérito menor. Para obtener una lista de valores de mérito, vea Merit. Si dwMerit es mayor que MERIT_DO_NOT_USE, la enumeración también excluye los filtros cuya categoría tiene un mérito menor o igual que MERIT_DO_NOT_USE. (Consulte Categorías de filtro).

[in] bInputNeeded

Valor booleano que indica si el filtro debe tener un pin de entrada. Si el valor es TRUE, el filtro debe tener al menos un pin de entrada.

[in] cInputTypes

Número de tipos de medios de entrada especificados en pInputTypes.

[in] pInputTypes

Puntero a una matriz de pares GUID que especifican tipos y subtipos principales, para que coincidan los patillas de entrada. El tamaño de la matriz es 2 * cInputTypes. La matriz puede ser NULL. Los miembros de matriz individuales pueden ser GUID_NULL, que coincide con cualquier tipo. (Vea Tipos de medios).

[in] pMedIn

Puntero a una estructura REGPINMEDIUM que especifica el medio para los pines de entrada. Establezca en NULL si no es necesario.

[in] pPinCategoryIn

Puntero a un GUID que especifica la categoría de patillas de entrada. (Consulte Conjunto de propiedades Pin). Establezca en NULL si no es necesario.

[in] bRender

Valor booleano que especifica si el filtro debe representar su entrada. Si es TRUE, el filtro especificado debe representar su entrada. (Este valor corresponde al campo bRendered de la estructura REGFILTERPINS , que se usa para registrar información sobre las patillas del filtro).

[in] bOutputNeeded

Valor booleano que especifica si el filtro debe tener un pin de salida. Si es TRUE, el filtro debe tener al menos un pin de salida.

[in] cOutputTypes

Número de tipos de medios de entrada especificados en pOutputTypes.

[in] pOutputTypes

Puntero a una matriz de pares GUID que especifican tipos y subtipos principales, para que coincidan los pines de salida. El tamaño de la matriz es 2 * cOutputTypes. La matriz puede ser NULL. Los miembros de matriz individuales pueden ser GUID_NULL, que coincide con cualquier tipo.

[in] pMedOut

Puntero a una estructura REGPINMEDIUM que especifica el medio para los pines de salida. Establezca en NULL si no es necesario.

[in] pPinCategoryOut

Puntero a un GUID que especifica la categoría de patillas de salida. (Consulte Conjunto de propiedades Pin). Establezca en NULL si no es necesario.

Valor devuelto

Devuelve un valor HRESULT . Entre los valores posibles se incluyen los que se muestran en la tabla siguiente.

Código devuelto Descripción
S_OK
Correcto
E_FAIL
Error
E_OUTOFMEMORY
Memoria suficiente
E_POINTER
Argumento de puntero NULL

Comentarios

Para buscar filtros cuyos patillas de entrada coinciden con un conjunto determinado de tipos multimedia, declare una matriz con GUID de tipo principal y GUID de subtipo ordenados en pares. Pase la dirección de matriz en el parámetro pInputTypes y establezca el parámetro cInputTypes igual al número de pares (es decir, la mitad del tamaño de la matriz):

C++
MATRIZ GUIDInTypes[2]; arrayInTypes[0] = MEDIATYPE_Video; arrayInTypes[1] = GUID_NULL;

DWORD cInTypes = 1;

Para los pines de salida, pase una matriz similar en el parámetro pOutputTypes y especifique el número de pares GUID en el parámetro cOutputTypes .

Si el valor del parámetro bExactMatch es TRUE, este método busca filtros que coincidan exactamente con los valores especificados para el tipo de medio, la categoría de patillas y el medio de patilla. Si el valor es FALSE, los filtros que registran un valor NULL para cualquiera de estos elementos se consideran una coincidencia. (En efecto, un valor NULL en el Registro actúa comodín).

Si especifica NULL para el tipo de medio, la categoría de patillas o el medio de patillas, cualquier filtro se considera una coincidencia para ese parámetro.

Si un pin no registró ningún tipo de medio, este método no lo considerará una coincidencia para el tipo de medio.

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]
Plataforma de destino Windows
Encabezado strmif.h (incluya Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

IFilterMapper2 (interfaz)