Méthode IAsyncReader::WaitForNext (strmif.h)

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La WaitForNext méthode attend la fin de la prochaine demande de lecture en attente.

Syntaxe

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

Paramètres

[in] dwTimeout

Spécifie un délai d’attente en millisecondes. Utiliser la valeur INFINITE pour attendre indéfiniment

[out] ppSample

Adresse d’une variable qui reçoit un pointeur d’interface IMediaSample .

[out] pdwUser

Pointeur vers une variable qui reçoit la valeur du paramètre dwUser spécifié dans la méthode IAsyncReader::Request .

Valeur renvoyée

Retourne une valeur HRESULT . Les valeurs possibles sont les suivantes.

Code de retour Description
VFW_E_TIMEOUT
Le délai d’expiration a expiré ou la broche est en cours de vidage.
VFW_E_WRONG_STATE
La broche est en cours de vidage.
E_FAIL
Une erreur de lecture s’est produite.
S_OK
Opération réussie.
S_FALSE
Atteint la fin du fichier ; a récupéré moins d’octets que demandé.

Notes

Si la méthode réussit, le paramètre ppSample contient un pointeur vers un exemple de média, dont la mémoire tampon contient les données demandées. Appelez la méthode IMediaSample::GetTime et divisez les résultats par 10 000 000 pour déterminer les octets de début et d’arrêt. Les échantillons peuvent être retournés dans le désordre. Libérez l’exemple lorsque vous avez terminé de traiter les données.

La méthode échoue si la broche est en cours de vidage. Toutefois, il peut retourner un exemple vide dans ppSample. Si *ppSample n’a pas la valeur NULL, relâchez l’exemple et ignorez-le. Pour plus d’informations, consultez IAsyncReader::BeginFlush.

Si une erreur de lecture se produit, le filtre source envoie un événement d’erreur au Gestionnaire de graphes de filtres ; l’appelant n’a pas besoin de signaler une erreur.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête strmif.h (include Dshow.h)
Bibliothèque Strmiids.lib

Voir aussi

Codes d’erreur et de réussite

IAsyncReader, interface