Пытался сам разобраться, не получилось, нужна ваша помощь по следующим вопросам:
1. Мне не очень понятно по поводу буфера для записи сигнала. Нужно указывать один буфер, например так:
  char *swvbuf  = (char*)malloc((size_t) nbuf); //nbuf = 1024
  swvbuf[0] = 0;
  WAVEHDR wvbuf;
  wvbuf.lpData                 = swvbuf;
  wvbuf.dwBufferLength  = nbuf;
  wvbuf.dwFlags              = WHDR_PREPARED;
  wvres =  waveInPrepareHeader(hwvindev, &wvbuf, sizeof(wvbuf));
а драйвер сам создаст нужное количество буферов по подобию заданного буфера или мне нужно задавать количество буферов самому например, так:
WAVEHDR wvbuf1, wvbuf2, wvbuf3
2. Как правильно задавать функцию оповещения о состоянии буфера в waveInOpen и как правильно ее обрабатывать в приложении? У меня консольное приложение для записи звука. Помогите, пожалуйста.