MIDI出力デバイス名を列挙          <TOP>


インストールされているMIDIデバイス名を列挙します。

midiOutGetDevCaps MIDIデバイスのデバイス名を取得

midiOutGetNumDevs MIDIデバイス数を取得 
 
確認
 
'================================================================
'= MIDI出力デバイス名を列挙
'=    (midiOutGetDevCaps.bas)
'================================================================

#define MAXPNAMELEN 32

Type MIDIOUTCAPS
    wMid           As Integer
    wPid           As Integer
    vDriverVersion As Long
    szPname        As String * MAXPNAMELEN
    wTechnology    As Integer
    wVoices        As Integer
    wNotes         As Integer
    wChannelMask   As Integer
    dwSupport      As Long
End Type

' MIDI出力デバイスのデバイス名を取得
Declare Function Api_midiOutGetDevCaps& Lib "winmm" Alias "midiOutGetDevCapsA" (ByVal uDeviceID&, lpCaps As MIDIOUTCAPS, ByVal uSize&)

' MIDI 出力デバイス数を取得
Declare Function Api_midiOutGetNumDevs& Lib "winmm" Alias "midiOutGetNumDevs" ()

var mc as MIDIOUTCAPS
var cnt As Long
var Ret As Long

'インストールされているMIDIデバイスの数を取得
Print "MIDIデバイスの数:" & Str$(Api_midiOutGetNumDevs)

For cnt = 0 To Api_midiOutGetNumDevs - 1

    'デバイス名と機能を取得
    Ret = Api_midiOutGetDevCaps(cnt, mc, Len(mc))
    Print "デバイス名" & Str$(cnt + 1) & ":" & Left$(mc.szPname, InStr(mc.szPname, Chr$(0)) - 1)
Next

Stop
End