Método CBasePin.ReceiveConnection

[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 ReceiveConnection método acepta una conexión de otro pin. Este método implementa el método IPin::ReceiveConnection .

Sintaxis

HRESULT ReceiveConnection(
   IPin          *pConnector,
   AM_MEDIA_TYPE *pmt
);

Parámetros

pConnector

Puntero a la interfaz IPin del pin de conexión.

Pmt

Puntero a una estructura AM_MEDIA_TYPE que especifica el tipo de medio.

Valor devuelto

Devuelve un valor HRESULT . Entre los valores posibles se incluyen los de la tabla siguiente.

Código devuelto Descripción
S_OK
Correcto.
E_POINTER
Argumento de puntero NULL.
VFW_E_ALREADY_CONNECTED
El pin ya está conectado.
VFW_E_NOT_STOPPED
El filtro está activo y el pin no admite la reconexión dinámica.
VFW_E_TYPE_NOT_ACCEPTED
El tipo de medio especificado no es aceptable.

Observaciones

El pin de salida llama a este método en el pin de entrada. Si el pin de entrada devuelve un código de error, se produce un error en la conexión.

En la clase base, este método realiza los pasos siguientes:

  • Comprueba si el pin ya está conectado.
  • Comprueba si el filtro está detenido.
  • Llama al método CBasePin::CheckConnect para comprobar si el pin de conexión es adecuado.
  • Llama al método CBasePin::CheckMediaType para comprobar si el tipo de medio es aceptable.

Si todos estos pasos se realizan correctamente, el método llama a los métodos CBasePin::CompleteConnect y SetMediaType para completar la conexión. Estos métodos almacenan el tipo de medio y un puntero al pin de salida.

Si se produce un error en CheckConnect o CheckMediaType , la clase base llama al método CBasePin::BreakConnect para interrumpir la conexión y, a continuación, devuelve un código de error de ReceiveConnection.

Requisitos

Requisito Value
Encabezado
Amfilter.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

CBasePin (clase)