public static extern MMSysErr waveOutOpen(out WaveHandle hWaveOut, int uDeviceID, WaveFormat lpFormat, waveOutProc dwCallback, IntPtr dwInstance, WaweOutFlag dwFlags);
public static extern MMSysErr waveOutOpen(out WaveHandle hWaveOut, int uDeviceID, WaveFormat lpFormat, waveOutProc dwCallback, IntPtr dwInstance, WaweOutFlag dwFlags);
public void Open() { WaveFormat fmt = new WaveFormat(SamplesPerSec, BitsPerSample, 1); fmt.cbSize = (short)Marshal.SizeOf(fmt); fmt.wFormatTag = (short)WaveFormats.Pcm; MM.Check(Api.waveOutOpen(out Handle, Api.WAVE_MAPPER, fmt, waveOutProc, (IntPtr)(GCHandle.Alloc(this)), //!!!GCHandle.ToIntPtr(GCHandle.Alloc(this)), WaweOutFlag.CALLBACK_FUNCTION)); }