private static extern MMRESULT midiInUnprepareHeader(HMIDIIN hmi, IntPtr pmh, uint cbmh);
 private static extern MMRESULT midiInAddBuffer(HMIDIIN hmi, IntPtr pmh, uint cbmh);
 private static extern MMRESULT midiInOpen(out HMIDIIN lphMidiIn, uint uDeviceID, MidiInProc dwCallback, IntPtr dwInstance, MidiCallbackFlags dwFlags);
 public static MMRESULT midiInUnprepareHeader(HMIDIIN hmi, IntPtr pmh)
 => midiInPrepareHeader(hmi, pmh, (uint)Marshal.SizeOf <MIDIHDR>());
 public static extern MMRESULT midiInStop(HMIDIIN hMidiIn);
 public static extern MMRESULT midiInReset(HMIDIIN hMidiIn);
 public static MMRESULT midiInOpen(out HMIDIIN lphMidiIn, uint uDeviceID, MidiInProc dwCallback, IntPtr dwInstance)
 => midiInOpen(out lphMidiIn, uDeviceID, dwCallback, dwInstance, dwCallback == null ? MidiCallbackFlags.CALLBACK_NULL : MidiCallbackFlags.CALLBACK_FUNCTION);
 public static extern MMRESULT midiInClose(HMIDIIN hMidiIn);