or is this better?
Private Structure MMIOINFOPublic
Public dwFlags, fccIOProc, pIOProc, wErrorRet, htask, cchBuffer, lBufOffset, lDiskOffset, adwInfo1, adwInfo2, adwInfo3, adwInfo4, dwReserved1, hmmio As Integer
Public pchBuffer, pchNext, pchEndRead, pchEndWrite As String
End Structure
Private Structure WAVEHDRPublic
Public lpData, dwBytesRecorded, dwUser, dwFlags, dwLoops, lpNext, Reserved As Integer
End Structure
Private Structure WAVEINCAPSPublic
Public wMid, wPid, wChannels As Short
Public vDriverVersion, dwFormats As Integer
Public szPname As String
End Structure
Private Structure WAVEFORMATPublic
Public wFormatTag, nChannels, nBlockAlign, wBitsPerSample, cbSize As Short
Public nSamplesPerSec, nAvgBytesPerSec As Integer
End Structure
Private Structure MMCKINFOPublic
Public ckid, fccType, dwDataOffset, dwFlags As Integer
End Structure
Private Structure MMTIMEPublic
Public x As Integer
End Structure