HookCallback()
**************


FUNKTION
========

   mixed HookCallback(object hooksource, int hookid, mixed hookdata)


DEFINIERT IN
============

   Eigenen Objekten


ARGUMENTE
=========

   * hooksource: Das Objekt, in dem das Ereignis ausgeloest wurde

   * hookid: Hooktyp des ausgeloesten Hooks

   * hookdata: Daten des ausgeloesten Hooks (S. Doku des jeweiligen
     Hooks.)


BESCHREIBUNG
============

   Standard-Callback-Methode fuer Hooks. Wird beim Registrieren ein
   Objekt uebergeben, wird versucht, eine Closure auf HookCallback()
   an diesem Objekt zu erstellen. Man kann die Funktion auch anders
   benennen und direkt als Closure uebergeben. Dies ist insb. bei
   mehreren Hooks im gleichen Objekt hilfreich, weil es den Code
   uebersichtlicher macht. Die Argumente muessen jedoch immer die
   gleichen wie bei HookCallback() sein.

   Die Reihenfolge des Aufrufs der Konsumenten ist Surveyor, Hook-
   Modifikator, Data-Modifikator, Listener. Innerhalb der Gruppen wird
   nach Prioritaet abgearbeitet. Ein Surveyor-Hook kann verhindern,
   dass Hooks bestimmte Aenderungen durchfuehren.


RUECKGABEWERTE
==============

   ({<status>, <hookdata>})

   * Status: Eine der folgenden Konstanten: - H_NO_MOD: keine
     Veraenderung - H_ALTERED: Daten des Hooks geaendert -
     H_CANCELLED: Die Ausfuehrung der Hook-Kette und das ausloesende

        Ereignis werden abgebrochen

     Nicht alle Hooks unterstuetzen jeden Status.

   * hookdata: Die ggf. modifizierten Hookdaten. (S. Doku des
     jeweiligen Hooks.)


BEMERKUNGEN
===========

   Bitte nutzt in neuem code nicht mixed, sondern unions entsprechend
   der Dokumentation der verwendeten Hooks.

   Auch reine Listener-Objekte muesse nein Array zurueckgeben, dessen
   erstes Element H_NO_MOD sein muss.


SIEHE AUCH
==========

   HRegisterToHook(), HUnregisterFromHook(), unions

Letzte Aenderung: 06.10.2022, Bugfix
