Partilhar via


Usando uma função de retorno de chamada para processar mensagens de driver

[O recurso associado a esta página, Waveform Audio, é um recurso legado. Foi substituído por WASAPI e Audio Graphs. WASAPI e Audio Graphs foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize WASAPI e Audio Graphs em vez de Waveform Audio, sempre que possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Você pode escrever sua própria função de retorno de chamada para processar mensagens enviadas pelo driver de dispositivo. Para utilizar uma função de callback, especifique o sinalizador CALLBACK_FUNCTION no parâmetro fdwOpen e o endereço do callback no parâmetro dwCallback da função waveInOpen ou waveOutOpen.

As mensagens enviadas para uma função de retorno de chamada são semelhantes às mensagens enviadas para uma janela, exceto que têm dois parâmetros DWORD em vez de um parâmetro UINT e um parâmetro DWORD . Para obter detalhes sobre essas mensagens, consulte Reproduzir arquivos Waveform-Audio.

Para transferir dados de instância de uma aplicação para uma função de retorno de chamada, utilize uma das seguintes técnicas:

  • Passe os dados da instância usando o parâmetro dwInstance da função que abre o driver de dispositivo.
  • Passe os dados da instância usando o dwUser membro da estrutura de WAVEHDR que identifica um bloco de dados de áudio que é enviado para um driver de dispositivo.

Se você precisar de mais de 32 bits de dados de instância, passe um ponteiro para uma estrutura que contenha as informações adicionais.