// Declaration: midioutgetdevcaps (udeviceid: uint; {Device ID} lpcaps: pmidioutcaps; {tmidioutcaps structure pointer} usize: uint {tmidioutcaps structure size}): mmresult; {0 is returned successfully. for possible error values, see:} mmsyserr_baddeviceid = 2; {Device ID hyperborder} mmsyserr_nodriver = 6; {No driver is installed. Program } // Tmidioutcaps is the redefinition of the tagmidioutcapsa structure: tagmidioutcapsa = record wmid: word; {merchant ID} wpid: word; {product ID} vdriverversion: mmversion; {version number; high byte is the primary version number, low byte is the secondary version number} szpname: array [0 .. MAXPNAMELEN-1] of ansichar; {product name} wtechnology: word; {Device Type} wvoices: word; {Number of sounds (only for synthesizer, otherwise 0)} wnotes: word; {maximum number of pronunciations (only for synthesizer, otherwise 0)} wchannelmask: word; {number of channels (only for synthesizer, otherwise 0)} dwsupport: DWORD; {Other features supported by the device} end; // optional value of device type wtechnology: mod_midiport = 1; {MIDI hardware port} mod_synth = 2; {common synthesizer} mod_sqsynth = 3; {Square Wave Synthesizer} mod_fmsynth = 4; {FM synthesizer} mod_mapper = 5; {Microsoft MIDI} // other features supported by the device dwsupport: midicaps_volume = $0001; {support for volume control} midicaps_lrvolume = $0002; {support for left-right channel volume control} midicaps_cache = $0004; {support for tone cache} midicaps_stream = $0008; {the device supports midistreamout directly}
// Example: