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 |
---|---|
|
Das Timeout ist abgelaufen, oder die Pin wird geleert. |
|
Der Stift wird geleert. |
|
Ein Lesefehler ist aufgetreten. |
|
Erfolg. |
|
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 |