C++ Builder Snippets  

DFÜ-Verbindungen: anlegen, ändern, anwählen, Status abfragen:
 
Die Handhabung der API-Schnittstelle zu den Remote Access Services unter Windows ist nicht gerade trivial. So wird auch das folgende Beispiel Ihnen das Stöbern in der MSDN nicht ganz ersparen. Die hier verwendete Klasse TRasObj kapselt einige RAS-Funktionalitäten, wie z.B. Auflistung der vorhandenen DFÜ-Verbindungen, Lesen und Speichern der Einstellungen, Herstellen und Trennen von Verbindungen etc.

TRasObj-Klasse stellt keine vollständige Kapselung der RAS-Schnittstelle von Windows dar - sie ist nur ein kleines Beispiel für das Arbeiten mit DFÜ-Verbindungen.

Das hier vorgestellte Beispiel sollte ab Win95 OSR2 lauffähig sein. (Der rasapi32.dll der früheren Windows-Versionen fehlen die Funktionen zum enumerieren der DFÜ-fähigen Geräte, alle anderen Funktionalitäten der Klasse sollten auch unter W95a laufen)

Ein weiterer problematischer Punkt ist die unterschiendlie Grösse (und Aufbau) der Strukturen RASENTRY und RASDIALPARAMS in Abhängigkeit von der Betriebssystem und Version.

Damit die RAS-Basisfunktionalitäten auf allen Win-Platformen und Versionen verfügbar sind, darf folgende Anweisung am Anfang der header Dateien nicht fehlen:
#define WINVER 0x400

Screenshot des Beispielprogramms
Screenshot des Beispielprogramms


Möglicherweise werden sich einige fragen, warum in diesem Beispiel nicht von der Möglichkeit Gebrauch gemacht wird, die RasDial() mit einer Callback-Funktion für die Ausgabe der Statusmeldungen zu verwenden, sondern auf eine umständlichere Weise mit der WM_RASDIALEVENT gearbeitet wird. Der Grund dafür war die Tatsache, dass es unter W2K (zumindest bei der ersten Version) ein Fehlschlagen des Verbindungsversuches zum Programmabsturz führte. Dieses Problem liess sich nur durch die Verwendung der WM_RASDIALEVENT umgehen.


Die Implementierung der TRasObj-Klasse befindet sich in den Dateien RasClass.h und RasClass.cpp. Der Quellcode ist recht vollständig dokumentiert.




  Download BCB5
Projekt-Quellcode
Download
Demo-Exe

© '99-2001 by S. Kreutzmann