with this code, the slider bar is set to 63 max, and you can control the volume of the WAVE thing be movin the slide bar. What i'm trying to do is to get it to load what volume the system has (because the slider bar always starts at 0). So why doesn't this work:

Code:
Dim q As String, ahgt, ghtr As String
Dim id As Long, v As Long, i As Long, lVol As lVolType, Vol As VolType, lv As Double, rv As Double

Private Declare Function auxGetVolume Lib "WINMM.DLL" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long

Private Declare Function mciGetDeviceID Lib "WINMM.DLL" Alias "mciGetDeviceIDA" (ByVal lpstrName As String) As Long

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 GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Private Type lVolType
    v As Long
    End Type

Private Type VolType
    lv As Integer
    rv As Integer
    End Type

Private Sub Form_Load()
    Dim OldVol As Long
    Call waveOutGetVolume(deviceID, OldVol)
    Slider1.Value = OldVol / 1000
End Sub

 Private Sub Slider1_change()
    Dim NewVol As Long
    NewVol = Slider1.Value * 1000

    Call waveOutSetVolume(deviceID, NewVol)
End Sub