我的一段代码
bool CDialUp::IsConnect()
{
LPRASCONN pConn=new RASCONN[5];
RASCONNSTATUS struStatus;
DWORD dwCb,dwCount;
dwCb=sizeof(RASCONN)*5;
dwCount=5;
m_hConn=NULL;
pConn[0].dwSize=sizeof(RASCONN);
m_nLastError=RasEnumConnections(pConn,&dwCb,&dwCount);
if(dwCount==0)
{
if(pConn)
delete[] pConn;
return false;
}
if(dwCount>5)
{
if(pConn)
delete[] pConn;
pConn=new RASCONN[dwCount];
dwCb=sizeof(RASCONN)*dwCount;
if((m_nLastError=RasEnumConnections(pConn,&dwCb,&dwCount))!=0)
{
if(pConn)
delete[] pConn;
return false;
}
}
m_hConn=pConn[0].hrasconn;
struStatus.dwSize=sizeof(RASCONNSTATUS);
if((m_nLastError=RasGetConnectStatus(m_hConn,&struStatus))!=0) //取得连接状态时失败
m_hConn=NULL;
else
{
if(struStatus.rasconnstate == RASCS_Connected) //如果已经有成功的连接
return true;
}
if(pConn)
delete[] pConn;
return false;
}