Использование функции обратного вызова для обработки сообщений драйвера
[Функция, связанная с этой страницей, Waveform Audio, является устаревшей возможностью.] Он был заменен на WASAPI и аудио графы. WASAPI и Звуковые графы оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде WASAPI и аудиографы вместо волнового аудио, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Вы можете написать собственную функцию обратного вызова для обработки сообщений, отправленных драйвером устройства. Чтобы использовать функцию обратного вызова, укажите флаг CALLBACK_FUNCTION в параметре fdwOpen и адрес обратного вызова в параметре dwCallback функции waveInOpen или waveOutOpen.
Сообщения, отправленные функции обратного вызова, похожи на сообщения, отправленные в окно, за исключением двух параметров DWORD DWORD вместо UINT и параметра DWORD DWORD. Дополнительные сведения об этих сообщениях см. в разделе Воспроизведение Waveform-Audio файлов.
Чтобы передать данные экземпляра из приложения в функцию обратного вызова, используйте один из следующих методов:
- Передайте данные экземпляра с помощью параметра dwInstance dwInstance функции, открывшей драйвер устройства.
- Передайте данные экземпляра с помощью dwUser члена структуры WAVEHDR, которая идентифицирует блок аудиоданных, отправляемый драйверу устройства.
Если требуется более чем 32-разрядные данные экземпляра, передайте указатель на структуру, содержащую дополнительные сведения.