int __fastcall GetRasEnumConnections(AnsiString NameConn)
{
// значение -1 произошла ошибка;
// значение 0 соединения нет;
// значение 1 соединение активно
unsigned long buff_size;
unsigned long num_conn;
unsigned long stat;
char buff_error_mess[257];
RASCONN* RasConn;
RasConn=new RASCKNN;
RasConn->dwSize=sizeof(RASCONN);
buff_size=sizeof(RASCONN);
stat=RasEnumConnections(RasConn,&buff_size,&num_conn);
if(stat==ERROR_BUFFER_TOO_SMALL)
{
delete RasConn;
RasConn = new RASCONN[num_conn];
RasConn[0].dwSize=sizeof(RASCONN);
buff_size = sizeof(RASCONN)*num_conn;
stat=RasEnumConnections(&RasConn[0],&buff_size,&num_conn);
if (stat!=0)
{
RasGetErrorString( stat,buff_error_mess,sizeof(buff_error_mess));
return -1;
}
}
for (unsigned int i=1; i<=num_conn;i++)
{
if( AnsiString(RasConn[i-1].szEntryName)==NameConn)
{
file://Выполняются какие-то действия.
file:// CurRunRasEntry->hrasconn = RasConn[i-1].hrasconn;
file://CurRunRasEntry->rasconnstate = RASCS_Connected;
return 1;
}
}
delete [] RasConn;
return 0;
}