Uso de una devolución de llamada de eventos para procesar mensajes del controlador
Para usar una devolución de llamada de evento, use la función CreateEvent para crear un evento de restablecimiento manual. En la llamada a la función waveOutOpen , especifique CALLBACK_EVENT para el parámetro fdwOpen . Después de llamar a la función waveOutPrepareHeader , pero antes de enviar datos de audio de forma de onda al dispositivo, coloque el evento en un estado no asignado llamando a la función ResetEvent . A continuación, dentro de un bucle que comprueba si la marca de WHDR_DONE está establecida en el miembro dwFlags de la estructura WAVEHDR , llame a la función WaitForSingleObject , especificando como parámetros el identificador de eventos y un valor de tiempo de espera.
Dado que las devoluciones de llamada de eventos no reciben notificaciones de cierre, realizadas o abiertas específicas, es posible que una aplicación tenga que comprobar el estado del proceso que está esperando después de que se produzca el evento. Es posible que el tiempo que waitForSingleObject haya completado varias tareas se haya completado.
Temas relacionados