Запрос устройств вывода MIDI
Перед воспроизведением MIDI-файла следует использовать функцию midiOutGetDevCaps , чтобы определить возможности устройства вывода MIDI, которое присутствует в системе. Эта функция принимает адрес структуры MIDIOUTCAPS , которая заполняется информацией о возможностях данного устройства. Эти сведения включают идентификаторы изготовителя и продукта, имя продукта для устройства и номер версии драйвера устройства (указанные в членах wMid, wPid, szPname и vDriverVersion соответственно).
Устройства вывода MIDI могут быть внутренними синтезаторами или внешними выходными портами MIDI. Элемент wTechnology структуры MIDIOUTCAPS определяет технологию устройства.
Если устройство является внутренним синтезатором, дополнительные сведения об устройстве доступны в членах wVoices, wNotes и wChannelMask . Член wVoices указывает количество голосов, поддерживаемых устройством. Каждый голос может иметь свой звук или тембр. Голоса организованы в MIDI-каналы. Член wNotes указывает полифонию устройства, то есть максимальное количество одновременно воспроизводимых заметок. Член wChannelMask — это битовое представление MIDI-каналов, на которые отвечает устройство. Например, если устройство отвечает на первые восемь MIDI-каналов, wChannelMask 0x00FF. Если устройство является внешним портом вывода, wVoices и wNote не используются, а wChannelMask имеет значение 0xFFFF.
Элемент dwSupport структуры MIDIOUTCAPS указывает, поддерживает ли драйвер устройства изменения тома, кэширование исправлений и потоковую передачу. Изменения тома поддерживаются только внутренними устройствами синтезатора. Внешние выходные порты MIDI не поддерживают изменения тома. Сведения об изменении тома см. в разделе Изменение внутреннего тома синтезатора MIDI.