Step 3: Create the Capture Buffer

Once you have ensured that the WAVEFORMATEX structure is valid for the user's device, you can go ahead and create a capture buffer in that format.

dscbDesc.dwSize = sizeof(DSCBUFFERDESC);

dscbDesc.dwFlags = 0;

// Buffer will hold one second's worth of audio

dscbDesc.dwBufferBytes = wfx.nAvgBytesPerSec;

dscbDesc.dwReserved = 0;

dscbDesc.lpwfxFormat = &wfx;

if FAILED(IDirectSoundCapture_CreateCaptureBuffer(lpdsc,

&dscbDesc, &lpdscb, NULL))

return FALSE;

You now have a pointer to the buffer object in lpdscb.