Metodo CBasePin.CheckConnect

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine 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, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il CheckConnect metodo determina se una connessione pin è adatta.

Sintassi

virtual HRESULT CheckConnect(
   IPin *pPin
);

Parametri

pPin

Puntatore all'interfaccia IPin dell'altro pin.

Valore restituito

Restituisce uno dei valori HRESULT visualizzati nella tabella seguente.

Codice restituito Descrizione
S_OK
Operazione completata.
VFW_E_INVALID_DIRECTION
Le direzioni dei pin non sono compatibili.

Commenti

Questo metodo viene chiamato su entrambi i pin all'inizio del processo di connessione. Il pin di connessione lo chiama dall'interno del metodo CBasePin::Connect e il pin di ricezione lo chiama dall'interno del metodo CBasePin::ReceiveConnection .

Usare questo metodo per determinare se il pin specificato dal parametro pPin è adatto per una connessione. La classe di base restituisce un errore se entrambi i pin hanno la stessa direzione (sia input che entrambi gli output). Le classi derivate possono eseguire l'override di questo metodo per verificare altre funzionalità nel pin. Ad esempio, la classe CBaseOutputPin esegue una query sul pin di input per l'interfaccia IMemInputPin .

Se questo metodo ha esito negativo, la connessione ha esito negativo e il pin chiama il metodo CBasePin::BreakConnect . Usare BreakConnect per liberare tutte le risorse ottenute in CheckConnect. Ad esempio, se CheckConnect chiama il metodo QueryInterface , BreakConnect deve rilasciare l'interfaccia.

Requisiti

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

Vedi anche

Classe CBasePin