Freigeben über


IAsyncReader::WaitForNext-Methode (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die WaitForNext Methode wartet, bis die nächste ausstehende Leseanforderung abgeschlossen ist.

Syntax

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

Parameter

[in] dwTimeout

Gibt ein Timeout in Millisekunden an. Verwenden Sie den Wert INFINITE, um unbegrenzt zu warten.

[out] ppSample

Adresse einer Variablen, die einen IMediaSample-Schnittstellenzeiger empfängt.

[out] pdwUser

Zeiger auf eine Variable, die den Wert des dwUser-Parameters empfängt, der in der IAsyncReader::Request-Methode angegeben ist.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Die folgenden Werte sind möglich.

Rückgabecode Beschreibung
VFW_E_TIMEOUT
Das Timeout ist abgelaufen, oder die Pin wird geleert.
VFW_E_WRONG_STATE
Der Stift wird geleert.
E_FAIL
Ein Lesefehler ist aufgetreten.
S_OK
Erfolg.
S_FALSE
Das Ende der Datei erreicht; weniger Bytes abgerufen als angefordert.

Bemerkungen

Wenn die Methode erfolgreich ist, enthält der ppSample-Parameter einen Zeiger auf ein Medienbeispiel, dessen Puffer die angeforderten Daten enthält. Rufen Sie die IMediaSample::GetTime-Methode auf, und dividieren Sie die Ergebnisse durch 10.000.000, um die Start- und Stoppbytes zu bestimmen. Beispiele können in nicht ordnungsgemäßer Reihenfolge zurückgegeben werden. Lassen Sie das Beispiel los, wenn Sie mit der Verarbeitung der Daten fertig sind.

Die Methode schlägt fehl, wenn der Stift geleert wird. Es kann jedoch ein leeres Beispiel in ppSample zurückgeben. Wenn *ppSample nicht NULL ist, lassen Sie das Beispiel los, und verwerfen Sie es. Weitere Informationen finden Sie unter IAsyncReader::BeginFlush.

Wenn ein Lesefehler auftritt, sendet der Quellfilter ein Fehlerereignis an den Filter Graph-Manager. der Aufrufer muss keinen Fehler signalisieren.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile strmif.h (include Dshow.h)
Bibliothek Strmiids.lib

Siehe auch

Fehler- und Erfolgscodes

IAsyncReader-Schnittstelle