Condividi tramite


Metodo IAsyncReader::WaitForNext (strmif.h)

[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 WaitForNext metodo attende il completamento della richiesta di lettura in sospeso successiva.

Sintassi

HRESULT WaitForNext(
  [in]  DWORD        dwTimeout,
  [out] IMediaSample **ppSample,
  [out] DWORD_PTR    *pdwUser
);

Parametri

[in] dwTimeout

Specifica un timeout in millisecondi. Usare il valore INFINITE per attendere in modo indefinito

[out] ppSample

Indirizzo di una variabile che riceve un puntatore dell'interfaccia IMediaSample .

[out] pdwUser

Puntatore a una variabile che riceve il valore del parametro dwUser specificato nel metodo IAsyncReader::Request .

Valore restituito

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

Codice restituito Descrizione
VFW_E_TIMEOUT
Timeout scaduto oppure il pin viene scaricato.
VFW_E_WRONG_STATE
Il pin sta scaricando.
E_FAIL
Si è verificato un errore di lettura.
S_OK
Operazione completata.
S_FALSE
Raggiunto la fine del file; recuperate meno byte rispetto alle richieste.

Commenti

Se il metodo ha esito positivo, il parametro ppSample contiene un puntatore a un esempio multimediale, il cui buffer contiene i dati richiesti. Chiamare il metodo IMediaSample::GetTime e dividere i risultati per 10.000.000 per determinare i byte di inizio e arresto. Gli esempi possono essere restituiti in ordine non ordinato. Rilasciare l'esempio al termine dell'elaborazione dei dati.

Il metodo ha esito negativo se il pin viene scaricato. Tuttavia, può restituire un esempio vuoto in ppSample. Se *ppSample non è NULL, rilasciare l'esempio ed eliminarlo. Per altre informazioni, vedere IAsyncReader::BeginFlush.

Se si verifica un errore di lettura, il filtro di origine invia un evento di errore a Filter Graph Manager; il chiamante non deve segnalare un errore.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici errore e esito positivo

Interfaccia IAsyncReader