Usando um retorno de chamada de evento para processar mensagens de driver

Para usar um retorno de chamada de evento, use a função CreateEvent para criar um evento de redefinição manual. Na chamada para a função waveOutOpen , especifique CALLBACK_EVENT para o parâmetro fdwOpen . Depois de chamar a função waveOutPrepareHeader , mas antes de enviar dados de áudio de forma de onda para o dispositivo, coloque o evento em um estado não atribuído chamando a função ResetEvent . Em seguida, dentro de um loop que verifica se o sinalizador WHDR_DONE está definido no membro dwFlags da estrutura WAVEHDR , chame a função WaitForSingleObject , especificando como parâmetros o identificador de evento e um valor de tempo limite.

Como os retornos de chamada de evento não recebem notificações específicas de fechamento, conclusão ou abertura, um aplicativo pode ter que marcar o status do processo que está aguardando após a ocorrência do evento. É possível que várias tarefas possam ter sido concluídas quando WaitForSingleObject retornar.

Blocos de dados de áudio