Partilhar via


Método CBasePin.ReceiveConnection

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O ReceiveConnection método aceita uma conexão de outro pin. Esse método implementa o método IPin::ReceiveConnection .

Sintaxe

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

Parâmetros

pConnector

Ponteiro para a interface IPin do pino de conexão.

Pgto

Ponteiro para uma estrutura AM_MEDIA_TYPE que especifica o tipo de mídia.

Retornar valor

Retorna um valor HRESULT . Os valores possíveis incluem os da tabela a seguir.

Código de retorno Descrição
S_OK
Êxito.
E_POINTER
Argumento de ponteiro NULL.
VFW_E_ALREADY_CONNECTED
O pino já está conectado.
VFW_E_NOT_STOPPED
O filtro está ativo e o pino não dá suporte à reconexão dinâmica.
VFW_E_TYPE_NOT_ACCEPTED
O tipo de mídia especificado não é aceitável.

Comentários

O pino de saída chama esse método no pin de entrada. Se o pin de entrada retornar um código de erro, a conexão falhará.

Na classe base, esse método executa as seguintes etapas:

  • Verifica se o pino já está conectado.
  • Verifica se o filtro foi interrompido.
  • Chama o método CBasePin::CheckConnect para testar se o pino de conexão é adequado.
  • Chama o método CBasePin::CheckMediaType para testar se o tipo de mídia é aceitável.

Se todas essas etapas forem bem-sucedidas, o método chamará os métodos CBasePin::CompleteConnect e SetMediaType para concluir a conexão. Esses métodos armazenam o tipo de mídia e um ponteiro para o pino de saída.

Se CheckConnect ou CheckMediaType falharem, a classe base chamará o método CBasePin::BreakConnect para interromper a conexão e retornará um código de erro de ReceiveConnection.

Requisitos

Requisito Valor
parâmetro
Amfilter.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CBasePin