Verwenden eines Ereignisrückrufs zum Verwalten der gepufferten Wiedergabe
Um einen Ereignisrückruf zu verwenden, verwenden Sie die CreateEvent-Funktion , um das Handle eines Ereignisses abzurufen. Geben Sie in einem Aufruf der midiOutOpen-Funktion CALLBACK_EVENT für den dwFlags-Parameter an. Erstellen Sie nach Der Verwendung der midiOutPrepareHeader-Funktion , aber vor dem Senden von MIDI-Ereignissen an das Gerät ein nicht signaliertes Ereignis, indem Sie die ResetEvent-Funktion aufrufen und das von CreateEvent abgerufene Ereignishandle angeben. Verwenden Sie dann in einer Schleife, die überprüft, ob das MHDR_DONE Bit im dwFlags-Member der MIDIHDR-Struktur festgelegt ist, die WaitForSingleObject-Funktion , um das Ereignishandle und den Timeoutwert INFINITE als Parameter anzugeben.
Ein Ereignisrückruf wird durch alles festgelegt, was zu einem Funktionsrückruf führen kann.
Da Ereignisrückrufe keine spezifischen schließenden, abgeschlossenen oder geöffneten Benachrichtigungen empfangen, muss eine Anwendung möglicherweise die status des Prozesses überprüfen, auf den sie nach dem Ereignis tritt. Es ist möglich, dass eine Reihe von Aufgaben abgeschlossen werden kann, wenn WaitForSingleObject zurückgibt.