Utilisation d’un rappel d’événement pour gérer la lecture mise en mémoire tampon
Pour utiliser un rappel d’événement, utilisez la fonction CreateEvent pour récupérer le handle d’un événement. Dans un appel à la fonction midiOutOpen , spécifiez _ l’événement de rappel pour le paramètre dwFlags . Après avoir utilisé la fonction midiOutPrepareHeader mais avant d’envoyer des événements midi à l’appareil, créez un événement non signalé en appelant la fonction ResetEvent , en spécifiant le descripteur d’événement récupéré par CreateEvent. Ensuite, à l’intérieur d’une boucle qui vérifie si le _ bit MHDR Done est défini dans le membre dwFlags de la structure MIDIHDR , utilisez la fonction WaitForSingleObject , en spécifiant le handle d’événement et une valeur de délai d’attente infinie comme paramètres.
Un rappel d’événement est défini par tout ce qui peut provoquer un rappel de fonction.
É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 avoir besoin de vérifier l’état du processus qu’il attend après l’événement. Il est possible qu’un certain nombre de tâches soient terminées par le temps que WaitForSingleObject retourne.