si es posible pero no es Wab es WAV
Define la api en el cabezal y plasma el siguiente codigo en un proceso o funciòn
La api es
MCISendStringPrivate Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
i = mciSendString("open new type waveaudio alias RecWavFile", 0&, 0, 0) 'Empezamos Todo
'Aquì puedes definir el BitRate, los canales, etc, por medio de los comandos del MCI, abajo dejo las referencias a estos textos.
i = mciSendString("record RecWavFile", 0&, 0, 0) 'Empesmos a grabar
i = mciSendString("Stop RecWavFile", 0&, 0, 0) 'Detenemos la grabaciòn
i = mciSendString("save RecWavFile test.wav", 0&, 0, 0) 'Aqui define con el nombre a gurdar
i = mciSendString("close RecWavFile", 0&, 0, 0) 'Y finalmente cerramos la grabaciòn
lo devuelto en la variable i debera ser tipo long, y pasado por la api mciGetErrorString, esta api devuleve la descripcion del error y lo devuelve en una variable tipo string con longitud de no mas de 255, abajo estan las referencias.
Referencias:
msdn MCIRecord MCIMCISendStringmciGetErrorStringmciExecutemciSendCommandDulces Lunas!¡.