查询 MIDI 输出设备
在播放 MIDI 文件之前,应使用 midiOutGetDevCaps 函数来确定系统中存在的 MIDI 输出设备的功能。 此函数采用 MIDIOUTCAPS 结构的地址,该地址填充有关给定设备功能的信息。 此信息包括制造商和产品标识符、设备的产品名称,以及分别在 wMid、 wPid、 szPname 和 vDriverVersion 成员中指定的设备驱动程序 (版本号,) 。
MIDI 输出设备可以是内部合成器或外部 MIDI 输出端口。 MIDIOUTCAPS 结构的 wTechnology 成员指定设备的技术。
如果设备是内部合成器, 则 wVoices、 wNotes 和 wChannelMask 成员中提供了其他设备信息。 wVoices 成员指定设备支持的语音数。 每个语音可以有不同的声音或音色。 语音组织到 MIDI 通道中。 wNotes 成员指定设备的复调 ,即可以同时播放的最大笔记数。 wChannelMask 成员是设备响应的 MIDI 通道的位表示形式。 例如,如果设备响应前八个 MIDI 通道,则 wChannelMask 0x00FF。 如果设备是外部输出端口, 则 wVoices 和 wNotes 未使用,并且 wChannelMask 设置为 0xFFFF。
MIDIOUTCAPS 结构的 dwSupport 成员指示设备驱动程序是否支持卷更改、修补程序缓存和流式处理。 只有内部合成器设备支持卷更改。 外部 MIDI 输出端口不支持卷更改。 有关更改音量的信息,请参阅 更改内部 MIDI 合成器音量。