Step 3: Creating 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.