Condividi tramite


Metodo CDynamicOutputPin.AsynchronousBlockOutputPin

[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 AsynchronousBlockOutputPin metodo blocca il pin. Il metodo potrebbe restituire prima che il pin venga bloccato.

Sintassi

HRESULT AsynchronousBlockOutputPin(
   HANDLE hNotifyCallerPinBlockedEvent
);

Parametri

hNotifyCallerPinBlockedEvent

Handle per un evento. L'evento viene segnalato quando il pin di output viene bloccato o se il chiamante annulla l'operazione di blocco.

Valore restituito

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

Codice restituito Descrizione
S_OK
Operazione completata.
VFW_E_PIN_ALREADY_BLOCKED
Il pin è già bloccato in un altro thread.
VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD
Il pin è già bloccato nel thread chiamante.

Commenti

Non chiamare questo metodo dal thread di streaming.

Se nessun thread di streaming usa il pin, questo metodo blocca immediatamente il pin. In caso contrario, imposta lo stato del pin su "in sospeso" e restituisce . Al termine dell'operazione di streaming, il thread di streaming chiama il metodo CDynamicOutputPin::StopUsingOutputPin , che blocca il pin e segnala l'evento hNotifyCallerPinBlockedEvent . Per annullare un blocco in sospeso, chiamare il metodo CDynamicOutputPin::UnblockOutputPin .

Requisiti

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

Vedi anche

Classe CDynamicOutputPin