Metodo CBasePin.ReceiveConnection

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il ReceiveConnection metodo accetta una connessione da un altro pin. Questo metodo implementa il metodo IPin::ReceiveConnection .

Sintassi

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

Parametri

pConnector

Puntatore all'interfaccia IPin del pin di connessione.

Pmt

Puntatore a una struttura AM_MEDIA_TYPE che specifica il tipo di supporto.

Valore restituito

Restituisce un valore HRESULT . I valori possibili includono quelli nella tabella seguente.

Codice restituito Descrizione
S_OK
Operazione completata.
E_POINTER
Argomento puntatore NULL.
VFW_E_ALREADY_CONNECTED
Il pin è già connesso.
VFW_E_NOT_STOPPED
Il filtro è attivo e il pin non supporta la riconnessione dinamica.
VFW_E_TYPE_NOT_ACCEPTED
Il tipo di supporto specificato non è accettabile.

Commenti

Il pin di output chiama questo metodo sul pin di input. Se il pin di input restituisce un codice di errore, la connessione non riesce.

Nella classe base questo metodo esegue i passaggi seguenti:

  • Controlla se il pin è già connesso.
  • Controlla se il filtro è arrestato.
  • Chiama il metodo CBasePin::CheckConnect per verificare se il pin di connessione è adatto.
  • Chiama il metodo CBasePin::CheckMediaType per verificare se il tipo di supporto è accettabile.

Se tutti questi passaggi hanno esito positivo, il metodo chiama i metodi CBasePin::CompleteConnect e SetMediaType per completare la connessione. Questi metodi archiviano il tipo di supporto e un puntatore al pin di output.

Se CheckConnect o CheckMediaType hanno esito negativo, la classe di base chiama il metodo CBasePin::BreakConnect per interrompere la connessione e quindi restituisce un codice di errore da ReceiveConnection.

Requisiti

Requisito Valore
Intestazione
Amfilter.h (include Streams.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)

Vedi anche

Classe CBasePin