--- joko/ToolBox/Windows/VpnDial/src/RasConnection.bas 2005/09/28 20:36:46 1.1 +++ joko/ToolBox/Windows/VpnDial/src/RasConnection.bas 2005/10/07 20:25:24 1.2 @@ -28,16 +28,16 @@ 'API function declarations -Private Declare Function RasEnumConnections Lib "RasApi32.DLL" Alias "RasEnumConnectionsA" (lprasconn As Any, _ +Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (lprasconn As Any, _ lpcb As Long, _ lpcConnections As Long) As Long -Private Declare Function RasGetProjectionInfo Lib "RasApi32.DLL" Alias "RasGetProjectionInfoA" (ByVal hRasConn As Long, _ +Private Declare Function RasGetProjectionInfo Lib "rasapi32.dll" Alias "RasGetProjectionInfoA" (ByVal hRasConn As Long, _ ByVal rasprojection As Long, _ lpprojection As Any, _ lpcb As Long) As Long -Private Declare Function RasHangUp Lib "RasApi32.DLL" Alias "RasHangUpA" ( _ +Private Declare Function RasHangUp Lib "rasapi32.dll" Alias "RasHangUpA" ( _ ByVal hRasConn As Long) As Long @@ -181,4 +181,46 @@ Next i End Function +Private Function RasRetrieveConnectionHandler(conName As String) As Long + Dim lRetCode As Long + Dim lSize As Long + Dim tConnections(255) As RASCONN + Dim lConnections As Long + + Dim i As Long + Dim cConnection As RASCONN + Dim strRASConName As String + + 'init + tConnections(0).dwSize = 412 + lSize = (UBound(tConnections) + 1) * tConnections(0).dwSize + RasRetrieveConnectionHandler = 0 + + 'retreive connections + lRetCode = RasEnumConnections(tConnections(0), lSize, lConnections) + + 'check return code + If lRetCode = 0 Then + 'call successfull -> any connections? + If lConnections > 0 Then + For i = 0 To lConnections - 1 + 'lRetrieveConnectionHandler = tConnections(0).hRasConn + cConnection = tConnections(i) + strRASConName = StrConv(cConnection.szEntryName(), vbUnicode) + strRASConName = Left$(strRASConName, InStr(strRASConName, vbNullChar) - 1) + 'MsgBox strRASConName + If strRASConName = conName Then + 'MsgBox cConnection.hRasConn + RasRetrieveConnectionHandler = cConnection.hRasConn + End If + Next i + End If + End If +End Function +Public Function RasIsOnline(conName As String) As Boolean + Dim handle As Long + handle = RasRetrieveConnectionHandler(conName) + 'MsgBox handle + If handle <> 0 Then RasIsOnline = True +End Function