Benachrichtigungshandler

Ein asynchroner RasDial-Aufruf muss einen Benachrichtigungshandler angeben. Während eines asynchronen Verbindungsvorgangs verwendet der Ras-Verbindungs-Manager den Benachrichtigungshandler, um den RAS-Client darüber zu informieren, wenn sich der Verbindungszustand ändert oder ein Fehler auftritt.

Die von einem Benachrichtigungshandler ausgeführten Aktionen können in die folgenden Kategorien unterteilt werden:

Es gibt drei Arten von Benachrichtigungshandlern, von denen jeder die gleichen grundlegenden Informationen empfängt: den aktuellen Verbindungszustand und einen Fehlercode, der nur dann nonzero ist, wenn ein Fehler aufgetreten ist.

Wert Definition
RasDialFunc Ein Rückruffunktionsprototyp, der nur den aktuellen Verbindungsstatus und Fehlercodeinformationen empfängt.
RasDialFunc1 Ein Rückruffunktionsprototyp, der zusätzlich zu den grundlegenden Informationen das HRASCONN-Verbindungshandle und erweiterte Fehlerinformationen empfängt. Der Verbindungshandle-Parameter macht RasDialFunc1 für Clientanwendungen nützlich, die mehrere gleichzeitige Verbindungsvorgänge unterstützen. Dadurch kann der Client dieselbe Rückruffunktion für alle Vorgänge angeben, und die Rückruffunktion kann bestimmen, welche Verbindung sich Zustände ändert.
RasDialFunc2 Eine Rückruffunktion ähnlich wie RasDialFunc1. RasDialFunc2 wurde jedoch erweitert, um Multilinkverbindungen zu unterstützen.
Fensterhandle Ein Fensterhandle, an das RAS WM_RASDIALEVENT Nachrichten sendet, die den aktuellen Verbindungsstatus und Fehlercodeinformationen enthalten. Verwenden Sie diese Methode, wenn Ihr Quellcode mit 16-Bit-Windows kompatibel sein muss, da 16-Bit-Windows keine der Rückruffunktionen unterstützt.

 

Die Remotezugriffs-Verbindungs-Manager hält den Verbindungsvorgang an, bis der Benachrichtigungshandler zurückgegeben wird. Aus diesem Grund sollte der Handler so schnell wie möglich zurückgegeben werden, es sei denn, es ist ein Fehler aufgetreten.

Die RasDial-Funktion sollte nicht innerhalb eines Benachrichtigungshandlers aufgerufen werden. Die anderen Remotezugriffsfunktionen ( RasGetConnectStatus, RasEnumEntries, RasEnumConnections, RasGetErrorString und RasHangUp) können innerhalb eines Handlers aufgerufen werden.