HRegisterToHook()
*****************


FUNKTION
========

   int HRegisterToHook(int hookid, object|closure consumer, int
   hookprio,
      int consumertype, int timeInSeconds)


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

   /std/hook_provider.c /sys/hook.h


ARGUMENTE
=========

   * hookid: gibt den Hook-Typ an Man kann sich nur fuer Hooktypen
     eintragen, die die Methode HListHooks() angeboten hat.

   * consumer: Objekt oder Closure. Wenn ein Objekt uebergeben wird,
     wird eine Closure auf HookCallback() an diesem Objekt erstellt
     und gespeichert, andernfalls wird die uebergebene Closure
     gespeichert. Diese Closure wird spaeter beim Ausloesen des Hooks
     aufgerufen.

   * hookprio: Gibt die Prioritaet an, mit der der Hook laufen soll.
     Diese Angabe bestimmt die Reihenfolge, in der die Hooks in der
     Liste der Hooks eingetragen werden. Siehe Abschnitt Beschreibung
     fuer Details.

   * consumertype: Gibt an, um welche Art von Consumer es sich
     handelt.

   * timeInSeconds: gibt die Laufzeit des Hooks an. Falls 0
     eingetragen wird, laeuft der Hook ewig.


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

   Registriert ein Objekt oder eine Closure als Hook-Konsument.

   Die Callback-Methode wird mit folgenden Argumenten gerufen: -
   object hooksource: das Objekt, in welchem das Ereignis ausgeloest
   wurde - int hookid: die ID des Hooks - mixed hookdata: die Daten
   des Hooks (siehe Doku zum jeweiligen Hook)

   Fuer hookprio sind folgende Werte vorgesehen (Konstanten aus
   hook.h): - H_HOOK_LIBPRIO(x) - H_HOOK_GUILDPRIO(x) oder -
   H_HOOK_OTHERPRIO(x). x darf 0, 1 oder 2 sein (je niedriger, desto
   hoeher die Prioritaet).

   Fuer consumertype gibt es vier festgelegte Arten, die fuer alle
   Hooks existieren koennen, aber nicht muessen (Konstanten aus
   hook.h): - H_LISTENER: Wird nur informiert - H_DATA_MODIFICATOR:
   Kann Daten des Ereignisses aendern - H_HOOK_MODIFICATOR: Kann das
   Ereignis zusaetzlich abbrechen - H_HOOK_SURVEYOR: Kann zusaetzlich
   entscheiden, ob sich Objekte

      registrieren, Daten modifizieren oder Ereignisse abbrechen
      koennen

   Die Methode  *HConsumerTypeIsAllowed* gibt Aufschluss darueber,
   welche Consumer-Typen tatsaechlich freigegeben sind.


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

   1  : Registrierung erfolgreich -1 : Hook unbekannt -2 : consumer
   ist keine closure und es konnte kein Callback auf

      HookCallback im consumer erstellt werden.

   -3 : Consumer ist bereits registriert -4 : Consumer-Typ ist nicht
   erlaubt -5 : hookprio ist nicht erlaubt -6 : Surveyor hat
   Registrierung nicht erlaubt -7 : zuviele Hooks registriert / kein
   Hookeintrag frei


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

   HUnregisterFromHook(), HookCallback(), HListHooks(),
   HIsHookConsumer()

Letzte Aenderung: 05.10.2022, Bugfix
