waveInAddBuffer (winmm)
Last changed: -92.238.51.9

.
Summary
The waveInAddBuffer function sends an input buffer to the given waveform-audio input device.

C# Signature:

[DllImport ("winmm.dll", EntryPoint="waveInAddBuffer", SetLastError=true)]
public static extern uint waveInAddBuffer(IntPtr hwi, ref WAVEHDR pwh, uint cbwh);

VB Signature:

<DllImport("winmm.dll")> _
Shared Function waveInAddBuffer(<MarshalAs(UnmanagedType.I4)> ByVal hwi As Integer, ByVal pwh As IntPtr, ByVal cbwh As UInteger) As MMRESULT
End Function
<DllImport("winmm.dll")> _
Shared Function waveInAddBuffer(<MarshalAs(UnmanagedType.I4)> ByVal hwi As Integer, ByRef pwh As WAVEHDR, ByVal cbwh As UInteger) As MMRESULT
End Function

User-Defined Types:

WAVEHDR

MMRESULT

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

When recording waveform audio, usually buffers are allocated with unmanaged functions and kept in an IntPtr() array; for this reason the function is provided in two versions, one processing a WAVEHDR ByRef and the other working with an IntPtr.

Tips & Tricks:

Instead of allocating memory using an unmanaged function, it is possible to lock the WAVEHDR and Buffer in place using GCHandle.Allocate(object, GCHandleType.Pinned);

Sample Code:

Please add some!

Documentation