public static MidiInCaps GetDeviceCapabilities(int deviceID)
        {
            int        result;
            MidiInCaps caps = new MidiInCaps();

            result = midiInGetDevCaps(deviceID, ref caps, SizeOfMidiHeader);

            if (result != MidiDeviceException.MMSYSERR_NOERROR)
            {
                throw new InputDeviceException(result);
            }

            return(caps);
        }
        public static MidiInCaps GetDeviceCapabilities(int deviceID)
        {
            int result;
            MidiInCaps caps = new MidiInCaps();

            result = midiInGetDevCaps(deviceID, ref caps, SizeOfMidiHeader);

            if (result != MidiDeviceException.MMSYSERR_NOERROR)
            {
                throw new InputDeviceException(result);
            }

            return caps;
        }
 private static extern int midiInGetDevCaps(int deviceID,
                                            ref MidiInCaps caps, int sizeOfMidiInCaps);
 public static extern int midiInGetDevCaps(int deviceID,
     ref MidiInCaps caps, int sizeOfMidiInCaps);
 void AddLogDevice(int device, MidiInCaps mic)
 {
     AddLog("device= " + device.ToString());
     AddLog("name= " + mic.name.ToString());
     AddLog("mid= " + mic.mid.ToString());
     AddLog("pid= " + mic.pid.ToString());
     AddLog("support= " + mic.support.ToString());
     AddLog("driverVersion= " + mic.driverVersion.ToString());
 }