Utilisation d’un rappel d’événement pour traiter les messages du pilote

Pour utiliser un rappel d’événement, utilisez la fonction CreateEvent pour créer un événement de réinitialisation manuelle. Dans l’appel à la fonction waveOutOpen , spécifiez CALLBACK_EVENT pour le paramètre fdwOpen . Après avoir appelé la fonction waveOutPrepareHeader , mais avant d’envoyer des données audio de forme d’onde à l’appareil, placez l’événement dans un état non signé en appelant la fonction ResetEvent . Ensuite, à l’intérieur d’une boucle qui vérifie si l’indicateur de WHDR_DONE est défini dans le membre dwFlags de la structure WAVEHDR , appelez la fonction WaitForSingleObject, en spécifiant comme paramètres le handle d’événement et une valeur de délai d’attente.

Étant donné que les rappels d’événements ne reçoivent pas de notifications de fermeture, de fin ou d’ouverture spécifiques, une application peut devoir case activée la status du processus qu’elle attend après l’événement. Il est possible qu’un certain nombre de tâches aient été effectuées au moment où WaitForSingleObject retourne.

Blocs de données audio