Compartir a través de


Método ICaptureGraphBuilder2::FindInterface (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 FindInterface método busca en el gráfico una interfaz especificada, empezando por un filtro especificado. Puede restringir la búsqueda a una sección del grafo ascendente o descendente del filtro, o restringirla a un tipo de medio o categoría de pin determinado.

Sintaxis

HRESULT FindInterface(
  [in]  const GUID  *pCategory,
  [in]  const GUID  *pType,
  [in]  IBaseFilter *pf,
  [in]  REFIID      riid,
  [out] void        **ppint
);

Parámetros

[in] pCategory

Puntero a un GUID que especifica los criterios de búsqueda. Vea Comentarios para obtener más información. Los siguientes valores posibles son posibles:

  • &LOOK_UPSTREAM_ONLY.
  • &LOOK_DOWNSTREAM_ONLY.
  • Una de las categorías de patillas enumeradas en Conjunto de propiedades de Pin.
  • NULL
Vea Comentarios para obtener más información.

[in] pType

Puntero a un GUID que especifica el tipo de medio principal de un pin de salida o NULL.

[in] pf

Puntero a la interfaz IBaseFilter del filtro. El método comienza a buscar desde este filtro.

[in] riid

Identificador de interfaz (IID) de la interfaz que se va a buscar.

[out] ppint

Dirección de una variable que recibe el puntero de interfaz. Asegúrese de liberar el puntero de interfaz recuperado cuando haya terminado con la interfaz .

Valor devuelto

Devuelve un valor HRESULT . Estos son algunos de los valores posibles.

Código devuelto Descripción
S_OK
Correcto.
E_FAIL
Error.
E_NOINTERFACE
No se admite dicha interfaz.
E_POINTER
Argumento de puntero NULL.

Comentarios

En un gráfico de captura, varios filtros y patillas pueden exponer interfaces para establecer propiedades como parámetros de compresión (IAMVideoCompression) o formatos de secuencia (IAMStreamConfig). Dependiendo del dispositivo de captura, otras interfaces útiles pueden incluir IAMCrossbar, que enruta señales analógicas o IAMTVTuner, que controla un dispositivo de sintonizador de TV. Puede usar este método para buscar una interfaz, sin escribir código especial que atraviesa el gráfico.

Importante No llame a este método para obtener un puntero de interfaz IVideoWindow . Consulte siempre el administrador de gráficos de filtros para esta interfaz. De lo contrario, el administrador de gráficos de filtros no responderá correctamente a los cambios en la resolución de pantalla y otros eventos.
 
Si el parámetro pCategory es NULL, este método busca en todo el gráfico la interfaz solicitada. A partir del filtro especificado por el parámetro pf , consulta los objetos siguientes en el gráfico.
  • Filtro
  • Patillas del filtro
  • Todos los filtros de bajada, incluidos sus patillas
  • Todos los filtros ascendentes, incluidos sus patillas
Puede restringir la búsqueda estableciendo los parámetros pCategory y pType , como se indica a continuación:
  • Si pCategory es igual a &LOOK_UPSTREAM_ONLY, la búsqueda comienza desde las patillas de entrada del filtro y continúa ascendente. No incluye el filtro ni nada de nivel inferior del filtro. Se omite el parámetro pType .
  • Si pCategory es igual a &LOOK_DOWNSTREAM_ONLY, la búsqueda se inicia desde las patillas de salida del filtro y continúa hacia abajo. No incluye el filtro ni nada ascendente del filtro. Se omite el parámetro pType .
  • Si pCategory especifica una categoría de patilla, la parte inferior de la búsqueda se restringe a las patillas de salida del filtro que coinciden con la categoría de patilla y el tipo de medio especificado en el parámetro pType . En este caso, el método también busca el filtro y todo lo que precede en el filtro.
Además, si pCategory no es NULL, el método puede agregar determinados filtros del modelo de controlador de Windows (WDM) ascendentes del filtro especificado en pf. Vea los comentarios en "Filtros auxiliares" en esta sección para obtener más información.

Las categorías de patillas son útiles para buscar interfaces de anclaje en filtros de captura. Por ejemplo, un filtro de captura podría tener patillas independientes para la captura y la vista previa. Si especifica una categoría de anclaje, también debe especificar el tipo de medio para asegurarse de que el método selecciona el filtro y el pin correctos.

Algunos filtros de captura de vídeo tienen un pin de puerto de vídeo (PIN_CATEGORY_VIDEOPORT) en lugar de un pin de vista previa. Si especifica PIN_CATEGORY_PREVIEW y MEDIATYPE_Video, el método trata los pines de puerto de vídeo como patillas de vista previa. La aplicación no tiene que probar esta posibilidad.

Filtros auxiliares. Si un dispositivo de captura usa un controlador de Modelo de controlador de Windows (WDM), el gráfico puede requerir ciertos filtros ascendentes del filtro de captura de vídeo WDM , como un filtro de tuner de TV o un filtro de barra cruzada de vídeo analógico . Si el parámetro pCategory no es igual a NULL, este método inserta automáticamente los filtros WDM necesarios en el gráfico. Para ello, consulta las patillas de entrada en el filtro de captura para determinar qué medios admiten y los conecta a filtros coincidentes. Si el parámetro pCategory es NULL, el método no agrega los filtros ascendentes.

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 (incluye Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

ICaptureGraphBuilder2 (Interfaz)