Option Explicit
Private Type RASDIALPARAMS
dwSize As Long
szEntryName(256) As Byte
szPhoneNumber(128) As Byte
szCallbackNumber(128) As Byte
szUserName(256) As Byte
szPassword(256) As Byte
szDomain(15) As Byte
End Type
Private Declare Function RasDialA Lib "RASAPI32.DLL" (ByVal
lpRasDialExtensions As Long, ByVal lpszPhoneBook As Long, lpRasDialParams As
RASDIALPARAMS, ByVal dwNotifierType As Long, ByVal lpvNotifier As Long,
lphRasConn As Long) As Long
Private Declare Function RasHangUpA Lib "RASAPI32.DLL" (ByVal hRasConn As
Long) As Long
Public Function RasDial(pEntryName As String, pUsername As String, pPassword
As String, pDomain As String, RasConnection As Long) As Long
Dim rdp As RASDIALPARAMS
Dim c As Integer
rdp.dwSize = 1052
For c = 0 To (Len(pUsername) - 1)
rdp.szUserName(c) = Asc(Mid(pUsername, c + 1, 1))
Next
For c = 0 To (Len(pPassword) - 1)
rdp.szPassword(c) = Asc(Mid(pPassword, c + 1, 1))
Next
For c = 0 To (Len(pEntryName) - 1)
rdp.szEntryName(c) = Asc(Mid(pEntryName, c + 1, 1))
Next
For c = 0 To (Len(pDomain) - 1)
rdp.szDomain(c) = Asc(Mid(pDomain, c + 1, 1))
Next c
'RasDialA will place return code in Connect and return to calling routine
RasDial = RasDialA(0&, 0&, rdp, 0&, 0&, RasConnection)
End Function
Public Function RasHangUp(RasConnection As Long) As Long
RasHangUp = RasHangUpA(RasConnection)
End Function
In you project do this:
Private Sub ConnectDun()
' DunName is the name of your phone book entry to use
Username = "JAMES"
PassWord = "BOND"
Domain = "MI5"
lReturnCode = dun.RasDial(DunName, UserName,PassWord, "DOMAIN",
gRASConn)
If lReturnCode <> 0 Then
lReturnCode = dun.RasHangUp(gRASConn)
ModemConnected = 0
MsgBox "Error connecting to " & DunName & " " & lReturnCode
Exit Sub
End If
End Sub
Private Sub DisconnectDun()
lReturnCode = dun.RasHangUp(gRASConn)
End Sub