' Skriv ut volym inställningen för ljudutenhet 0. Notera att vi
' först måste ta reda på om det kan vara olika volym på höger och
' vänster kanal, för att veta hur värderna ska presenteras.
' Vi utgår ifrån att ljudutenheten med ID 0 finns.
Dim volume As Long ' tar emot volym(er)
Dim lvolume As Long, rvolume As Long ' dela kanalernas volymer
Dim spkrcaps As WAVEOUTCAPS ' nödvändig för att hitta volym tolkning
Dim numvols As Integer ' kommer vara 1 om det bara finns en volym inställning eller 2 om det finns två
Dim retval As Long ' returnerings värde
' Ta reda på om höger och vänster kanal har olika volymer
retval = waveOutGetDevCaps(0, spkrcaps, Len(spkrcaps)) ' hämta information
If (spkrcaps.dwSupport And WAVECAPS_LRVOLUME) = WAVECAPS_LRVOLUME Then
numvols = 2 ' dela kanal volym
Else
numvols = 1 ' bara en volym
End If
' Hämta volym inställningarna och skriv ut dem i hexadecimal.
retval = waveOutGetVolume(0, volume)
If numvols = 1 Then ' om det bara är en kanal volym
volume = volume And &HFFFF ' förstör irrelevant high-order ord
Debug.Print "Waveform Output Device #0 volume: "; Hex(volume)
Else ' om möjlighet till delade volymer finns
lvolume = volume And &HFFFF ' isolera vänster högtalare volym
rvolume = (volume And &HFFFF0000) / &H10000 ' isolera höger högtalare volym
Debug.Print "Waveform Output Device #0 left channel volume: "; Hex(lvolume)
Debug.Print "Waveform Output Device #0 right channel volume: "; Hex(rvolume)
End If