MIDI 出力デバイスの能力についての情報を記述します。
#define MAXPNAMELEN 32 typedef struct tagMIDIOUTCAPS { WORD wMid; // メーカーID WORD wPid; // プロダクトID MMVERSION vDriverVersion; // バージョン TCHAR szPname[MAXPNAMELEN]; // プロダクト名 WORD wTechnology; // デバイスタイプ WORD wVoices; // ボイス数 WORD wNotes; // 最大同時発音数 WORD wChannelMask; // チャンネル DWORD dwSupport; // サポートされる機能 } MIDIOUTCAPS, *PMIDIOUTCAPS, *NPMIDIOUTCAPS, *LPMIDIOUTCAPS;
MIDI 出力デバイスのためのデバイスドライバのメーカー ID が格納されます。
MIDI 出力デバイスのプロダクト ID です。
MIDI 出力デバイスのためのデバイスドライバのバージョン番号が格納されます。
プロダクト名が格納されます。
MIDI 出力デバイスの型を示すフラグが格納されます。以下の値のいずれかになります。
値 | MIDI 出力デバイスの型 |
---|---|
1 (MOD_MIDIPORT) | MIDI ハードウェアポート |
2 (MOD_SYNTH) | シンセサイザ |
3 (MOD_SQSYNTH) | square wave synthesizer |
4 (MOD_FMSYNTH) | FM シンセサイザ |
5 (MOD_MAPPER) | Microsoft MIDI mapper |
内部シンセサイザデバイスがサポートするボイス数が格納されます。デバイスがポートの場合はこのメンバは 0 になります。
内部シンセサイザデバイスがサポートする最大同時発音数が格納されます。デバイスがポートの場合はこのメンバは 0 になります。
内部シンセサイザデバイスが応じることのできるチャンネルが格納されます。最下位ビットがチャンネル 0 を、最上位ビットがチャンネル 15 を指しています。すべてのチャンネルを送るポートデバイスの場合はこのメンバは 0xFFFF になります。
デバイスがサポートする機能を示す値が格納されます。以下の値の組み合わせになります。
値 | サポートする機能 |
---|---|
0x0001 (MIDICAPS_VOLUME) | ボリュームコントロール |
0x0002 (MIDICAPS_LRVOLUME) | 左右独立したボリュームコントロール |
0x0004 (MIDICAPS_CACHE) | パッチキャッシュ |
0x0008 (MIDICAPS_STREAM) | midiStreamOut 関数のダイレクトサポート |
デバイスが左右独立したボリュームコントロールをサポートする場合は、 MIDICAPS_VOLUME と MIDICAPS_LRVOLUME の両方がセットされます。
Windows 95 以降 / Windows NT 4.0 以降
HSP 変数 | メンバ | |||
---|---|---|---|---|
メンバ名 | オフセット | サイズ | ||
moc.0 |
1バイト目 | wMid | 0 | 2 |
2バイト目 | ||||
3バイト目 | wPid | 2 | 2 | |
4バイト目 | ||||
moc.1 | vDriverVersion | 4 | 4 | |
moc.2 | szPname | 8 | 32 | |
… | ||||
moc.9 | ||||
moc.10 |
1バイト目 | wTechnology | 40 | 2 |
2バイト目 | ||||
3バイト目 | wVoices | 42 | 2 | |
4バイト目 | ||||
moc.11 |
1バイト目 | wNotes | 44 | 2 |
2バイト目 | ||||
3バイト目 | wChannelMask | 46 | 2 | |
4バイト目 | ||||
moc.12 | dwSupport | 48 | 4 |
wMid, wPid, wTechnology, wVoices, wNotes, wChannelMask の各メンバを取得するには
wMid = moc.0 & 0xFFFF wPid = (moc.0 >> 16) & 0xFFFF wTechnology = moc.10 & 0xFFFF wVoices = (moc.10 >> 16) & 0xFFFF wNotes = moc.11 & 0xFFFF wChannelMask = (moc.11 >> 16) & 0xFFFF
または
wpeek wMid, moc, 0 wpeek wPid, mod, 2 wpeek wTechnology, mod, 40 wpeek wVoices, mod, 42 wpeek wNotes, mod, 44 wpeek wChannelMask, mod, 46
szPname メンバを取得するには
szName = "" (w)peek szName, moc, 8