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 hwi,
     int uDeviceID,
     [In, MarshalAs(UnmanagedType.LPStruct)] WaveFormatEx b,
     WaveInDelegate dwCallback,
     IntPtr dwCallbackInstance,
     WaveOpenFlags dwFlags);