Share via


Verwenden eines Ereignisrückrufs zum Verarbeiten von Treibermeldungen

Um einen Ereignisrückruf zu verwenden, verwenden Sie die CreateEvent-Funktion , um ein Ereignis mit manueller Zurücksetzung zu erstellen. Geben Sie im Aufruf der waveOutOpen-FunktionCALLBACK_EVENT für den fdwOpen-Parameter an. Nachdem Sie die waveOutPrepareHeader-Funktion aufgerufen haben , aber vor dem Senden von Waveform-Audiodaten an das Gerät, versetzen Sie das Ereignis in einen nicht signalierten Zustand, indem Sie die ResetEvent-Funktion aufrufen. Rufen Sie dann in einer Schleife, die überprüft, ob das WHDR_DONE-Flag im dwFlags-Element der WAVEHDR-Struktur festgelegt ist, die WaitForSingleObject-Funktion auf, und geben Sie als Parameter das Ereignishandle und einen Timeoutwert an.

Da Ereignisrückrufe keine spezifischen Benachrichtigungen zum Schließen, Abgeschlossen oder Öffnen empfangen, muss eine Anwendung möglicherweise die status des Prozesses überprüfen, auf den sie nach dem Ereignis wartet. Es ist möglich, dass eine Reihe von Aufgaben bis zum Zeitpunkt der Rückgabe von WaitForSingleObject abgeschlossen wurden.

Audiodatenblöcke