Condividi tramite


Metodo CPullPin.Connect

[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 Connect metodo completa una connessione al pin di output.

Sintassi

HRESULT Connect(
   IUnknown      *pUnk,
   IMemAllocator *pAlloc,
   BOOL          bSync
);

Parametri

Punk

Puntatore all'interfaccia IUnknown del pin di output.

pAlloc

Puntatore all'interfaccia IMemAllocator dell'allocatore preferito del pin di input o NULL.

bSync

Valore booleano che specifica se usare letture sincrone. Se TRUE, il pin esegue operazioni di lettura sincrone sul pin di output. Se FALSE, il pin effettua richieste di lettura asincrone.

Valore restituito

Restituisce un valore HRESULT. Di seguito sono indicati alcuni valori possibili.

Codice restituito Descrizione
S_OK
Operazione completata.
VFW_E_ALREADY_CONNECTED
Il pin di input è già connesso.
E_NOINTERFACE
Il pin di output non espone IAsyncReader.

Commenti

Chiamare questo metodo durante il processo di connessione del pin di input. Se il metodo ha esito negativo, il pin non riesce la connessione.

Questo metodo esegue una query sul pin di output per l'interfaccia IAsyncReader . Se ha esito positivo, chiama CPullPin::D ecideAllocator per negoziare l'allocatore per la connessione. Se il pin di input ha un allocatore preferito, specificarlo nel parametro pAlloc ; Il metodo DecideAllocator passa questo puntatore al metodo IAsyncReader::RequestAllocator del pin di output. In caso contrario, impostare pAlloc su NULL.

Se il valore di bSync è TRUE, l'oggetto CPullPin effettua richieste di lettura sincrone chiamando IAsyncReader::SyncReadAligned del pin di output. In caso contrario, chiama il metodo IAsyncReader::Request per effettuare richieste di lettura sovrapposte.

Requisiti

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

Vedi anche

Classe CPullPin