static extern MMSYSERROR waveOutOpen(ref IntPtr handle, int uDeviceID, ref WAVEFORMATEX pwfx, WaveOutProc dwCallback, IntPtr dwCallbackInstance, WaveOpenFlags dwFlags);
public static extern int waveInOpen(out IntPtr phwi, int uDeviceID, [In, MarshalAs(UnmanagedType.LPStruct)] WaveFormat lpFormat, WaveInDelegate dwCallback, IntPtr dwInstance, WaveOpenFlags dwFlags);
public static extern int Open( out IntPtr hWaveOut, int uDeviceID, [In, MarshalAs(UnmanagedType.LPStruct)] WaveFormatEx b, IntPtr dwCallback, // If using Event IntPtr dwCallbackInstance, WaveOpenFlags dwFlags);
static extern uint Open( out IntPtr handle, UIntPtr deviceID, ref WaveFormatEx format, WaveOutCallback callback, UIntPtr callbackInstance, WaveOpenFlags flags);
public static extern int Open( out IntPtr hwi, int uDeviceID, [In, MarshalAs(UnmanagedType.LPStruct)] WaveFormatEx b, WaveInDelegate dwCallback, IntPtr dwCallbackInstance, WaveOpenFlags dwFlags);