private static extern MMRESULT midiOutOpen(out HMIDIOUT lphmo, UIntPtr uDeviceID, MidiOutProc dwCallback, UIntPtr dwCallbackInstance, MidiOpenFlags dwFlags);
private static extern MMRESULT midiInOpen(out HMIDIIN lphMidiIn, UIntPtr uDeviceID, MidiInProc dwCallback, UIntPtr dwCallbackInstance, MidiOpenFlags dwFlags);
private static extern Result midiInOpen(ref MidiDeviceHandle deviceHandle, int deviceID, MidiInputDelegate callback, IntPtr callbackInstance, MidiOpenFlags flags);
private static extern int midiOutOpen( out HandleMidiOut lphMidiOut, UIntPtr uDeviceId, MidiOutProc dwCallback, UIntPtr dwCallbackInstance, MidiOpenFlags dwFlags);