C++ Builder Snippets  

Prüfen ob eine Einwahlverbindung über das DFÜ-Netzwerk besteht:
//---------------------------------------------------------------------------
// Funktion RasConnected() prüft ob eine Einwahlverbindung über das
// DFÜ-Netzwerk besteht.
//---------------------------------------------------------------------------
// Rückgabewert: true falls Verbindung besteht, false wenn keine Verbindung
//               oder beim Auftreten von Fehlern
//---------------------------------------------------------------------------
// Hinweis:
// #define WINVER 0x400 - Anweisung muss vor #include <ras.h> stehen !
//---------------------------------------------------------------------------

#pragma warn -dup
#define WINVER 0x400
#include <ras.h>

bool RasConnected(void)
{
  DWORD dwSizeBuf = 0;
  DWORD dwConnections = 0;
  RASCONN stRasConn;
  bool blRetVal = false;

  stRasConn.dwSize = sizeof(stRasConn);
  RasEnumConnections(&stRasConn, &dwSizeBuf, &dwConnections);

  RASCONN *lpRasConn = new RASCONN[dwConnections];
  lpRasConn->dwSize = sizeof(*lpRasConn);

  RasEnumConnections(lpRasConn, &dwSizeBuf, &dwConnections);
  for(DWORD i = 0; i < dwConnections; i++)
  {
    RASCONNSTATUS stRasStatus;
    stRasStatus.dwSize = sizeof(RASCONNSTATUS);

    if(!RasGetConnectStatus(lpRasConn[i].hrasconn, &stRasStatus))
    {
      if(stRasStatus.rasconnstate == RASCS_Connected)
      {
        blRetVal = true;
        break;
      }
    }
  }
  delete []lpRasConn;
  return blRetVal;
}

© '99-2001 by S. Kreutzmann