Freigeben über


_ActivateHandler( ), API-Bibliotheksroutine

Fügt am Ende der Liste mit den Ereignisbehandlungsroutinen eine Behandlungsroutinenfunktion hinzu.

unsigned int _ActivateHandler(FPFI handler)
FPFI handler               /* Event handler to be added. */

Hinweise

_ActivateHandler( ) gibt ein ganzzahliges Handle für diese Behandlungsroutine zurück. Verwenden Sie dieses Handle, um die Behandlungsroutine mit _DeActivateHandler( ) aus der Ereignisverarbeitungsliste zu entfernen.

Die Behandlungsroutine wird mit zwei Parametern aufgerufen: mit dem Handle WHANDLE für das Fenster, zu dem das Ereignis gehört und einem FAR-Zeiger (32-Bit) für einen Ereignisdatensatz. Wenn die Behandlungsroutine nicht nach einem Ereignis sucht oder ein Ereignis für nachfolgende Ereignisbehandlungsroutinen bearbeitet, wird Falsch (0) zurückgegeben. Auf diese Weise wird angezeigt, dass das Ereignis noch an andere Behandlungsroutinen oder an die Visual FoxPro-Schnittstellenroutinen übergeben werden muss. Wenn die Behandlungsroutine ermittelt, dass das Ereignis nicht übergeben werden muss, wird Wahr (eine ganze Zahl ungleich 0) zurückgegeben. Damit wird angezeigt, dass das Ereignis behandelt wurde.

Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.

Beispiel

Im folgenden Beispiel wird eine Ereignisbehandlungsroutine beim Laden der Bibliothek aktiviert. Die Ereignisbehandlungsroutine druckt für jedes Ereignis eine Meldung. Visual FoxPro kann das Ereignis ganz normal verarbeiten. Die Ereignisbehandlungsroutine wird beim Entfernen der Bibliothek deaktiviert.

Visual FoxPro-Code

SET LIBRARY TO ACTIHAND
WAIT WINDOW TO m.test TIMEOUT 5
SET LIBRARY TO

C-Code

#include <pro_ext.h>

static int HandlerID;

//   This is the routine that is registered as an event handler.
FAR EventHandler(WHandle theWindow, EventRec FAR *ev)
{
   _PutStr("\nEventHandler() called.");
   return NO;   // event still needs to be handled by Visual FoxPro
}

FAR Activate()
{
   HandlerID = _ActivateHandler(EventHandler);
}

//   When the library is unloaded we must deactivate the event handler
//   in a CALLONUNLOAD function.
FAR DeActivate()
{
   _DeActivateHandler(HandlerID);
}

FoxInfo myFoxInfo[] = {
   {"ACTIVATE",  Activate,   CALLONLOAD, ""},
   {"DEACTIVATE", DeActivate, CALLONUNLOAD, ""}
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Siehe auch

_DeActivateHandler( ), API-Bibliotheksroutine | _FindWindow( ), API-Bibliotheksroutine | _GlobalToLocal( ), API-Bibliotheksroutine | _MousePos( ), API-Bibliotheksroutine | Ereignishandler | EventHandler( )-Funktion