这个内容比较少Private Declare Function waveOutGetVolume Lib "winmm.dll" _ (ByVal uDeviceID As Long, lpdwVolume As Long) As Long Private Declare Function waveOutSetVolume Lib "winmm.dll" _ (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long Private Declare Function waveOutGetDevCaps Lib "winmm.dll" _ Alias "waveOutGetDevCapsA" (ByVal uDeviceID As Long, _ lpCaps As WAVEOUTCAPS, ByVal uSize As Long) As LongConst WAVE_MAPPER = -1& Const MAXPNAMELEN = 32Private Type WAVEOUTCAPS wMid As Integer wPid As Integer vDriverVersion As Long szPname As String * MAXPNAMELEN dwFormats As Long wChannels As Integer dwSupport As Long End TypePrivate Sub Form_Load() Dim lVol As Long Dim tWaveCaps As WAVEOUTCAPS
waveOutGetVolume WAVE_MAPPER, lVol HScroll1.Value = (lVol And 255) HScroll2.Value = ((lVol \ 65536) And 255) End SubPrivate Sub HScroll1_Change() Dim lVol As Long
lVol = HScroll2.Value * 65536 Debug.Print waveOutSetVolume(WAVE_MAPPER, (lVol Or HScroll1.Value)) End SubPrivate Sub HScroll2_Change() Dim lVol As Long
lVol = HScroll2.Value * 65536 Debug.Print waveOutSetVolume(WAVE_MAPPER, (lVol Or HScroll1.Value)) End Sub
(ByVal uDeviceID As Long, lpdwVolume As Long) As Long
Private Declare Function waveOutSetVolume Lib "winmm.dll" _
(ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
Private Declare Function waveOutGetDevCaps Lib "winmm.dll" _
Alias "waveOutGetDevCapsA" (ByVal uDeviceID As Long, _
lpCaps As WAVEOUTCAPS, ByVal uSize As Long) As LongConst WAVE_MAPPER = -1&
Const MAXPNAMELEN = 32Private Type WAVEOUTCAPS
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
dwFormats As Long
wChannels As Integer
dwSupport As Long
End TypePrivate Sub Form_Load()
Dim lVol As Long
Dim tWaveCaps As WAVEOUTCAPS
waveOutGetVolume WAVE_MAPPER, lVol
HScroll1.Value = (lVol And 255)
HScroll2.Value = ((lVol \ 65536) And 255)
End SubPrivate Sub HScroll1_Change()
Dim lVol As Long
lVol = HScroll2.Value * 65536
Debug.Print waveOutSetVolume(WAVE_MAPPER, (lVol Or HScroll1.Value))
End SubPrivate Sub HScroll2_Change()
Dim lVol As Long
lVol = HScroll2.Value * 65536
Debug.Print waveOutSetVolume(WAVE_MAPPER, (lVol Or HScroll1.Value))
End Sub