//读取当前所有连接
procedure ReceiveLink ;
const
     MaxConnections = 10 ;
var
   dwResult :DWORD ;
   longsize :DWORD ;
   intAvailabelConnections :DWORD ;
   intIndex :Integer ;
   RASCONNSTATUSData :RASCONNSTATUS ;
   lprasconn :Array[0..MaxConnections-1] of RASCONN ;
begin
     lprasConn[0].dwSize := sizeof(RASCONN) ;
     longsize := sizeof(RASCONN)*MAXConnections ;
     dwResult := RasEnumConnections(lprasconn[0] ,longsize ,intAvailabelConnections) ;
     if dwResult <> 0 then
        Form1.Memo1.lines.add('读取当前活动的连接失败.'+Inttostr(dwResult))
     else
     begin
        Form1.Memo1.lines.add('当前系统中活动的连接:'+Inttostr(intAvailabelConnections)) ;
        for intIndex := 0 to intAvailabelConnections-1 do
        begin
             Form1.Memo1.lines.add('连接名称:'+StrPas(lprasconn[intIndex].szEntryName)) ;
             Form1.Memo1.lines.add('设备类型:'+strPas(lprasconn[intIndex].szDeviceType)) ;
             Form1.Memo1.lines.add('设备名称:'+StrPas(lprasconn[intIndex].szDeviceName)) ;
             RASCONNSTATUSData.dwSize := sizeof(RASCONNSTATUS) ;
             dwResult := RasGetConnectStatus(lprasconn[intIndex].hRasConn ,@RASCONNSTATUSData) ;
             if dwResult <> 0 then
                Form1.Memo1.lines.add('连接状态未知:'+Inttostr(dwResult))
             else if RASCONNSTATUSData.rasconnstate = $2000 then //RASCS_Connected then
                Form1.Memo1.lines.add('连接状态:已连接')
             else
                Form1.Memo1.lines.add('连接状态:('+Inttostr(RASCONNSTATUSData.rasconnstate)+')') ;
        end ;
     end ;
end ;
//挂断
procedure HangUpRemote(RasCon :RASCONN) ;
var
   dwResult :Dword ;
begin
     dwResult := RasHangUp(RasCon) ;
     if dwResult <> 0 then
        Form1.memo1.lines.add('挂断失败')
     else
        Form1.memo1.lines.add('挂断成功') ;
end ;