The midiInGetDevCaps function determines the capabilities of a specified MIDI input device.

MMRESULT midiInGetDevCaps(
  UINT_PTR     uDeviceID,     
  LPMIDIINCAPS lpMidiInCaps,  
  UINT         cbMidiInCaps   



Identifier of the MIDI input device. The device identifier varies from zero to one less than the number of devices present. This parameter can also be a properly cast device handle.


Pointer to a MIDIINCAPS structure that is filled with information about the capabilities of the device.


Size, in bytes, of the MIDIINCAPS structure. Only cbMidiInCaps bytes (or less) of information is copied to the location pointed to by lpMidiInCaps. If cbMidiInCaps is zero, nothing is copied, and the function returns MMSYSERR_NOERROR.

Return Values

Returns MMSYSERR_NOERROR if successful or an error otherwise. Possible error values include the following.

Value Description
MMSYSERR_BADDEVICEID The specified device identifier is out of range.
MMSYSERR_INVALPARAM The specified pointer or structure is invalid.
MMSYSERR_NODRIVER The driver is not installed.
MMSYSERR_NOMEM The system is unable to allocate or lock memory.


To determine the number of MIDI input devices present on the system, use the midiInGetNumDevs function.


**  Windows NT/2000/XP:** Included in Windows NT 3.1 and later.
**  Windows 95/98/Me:** Included in Windows 95 and later.
**  Header:** Declared in Mmsystem.h; include Windows.h.
**  Library:** Use Winmm.lib.
**  Unicode:** Implemented as Unicode and ANSI versions on Windows NT/2000/XP.

See Also

Musical Instrument Digital Interface (MIDI), MIDI Functions, MIDIINCAPS, midiInGetNumDevs