So wie ich den hier umgesetzten Callback verstehe, werden beim Entladen des Packages, welches diese
Unit enthält,
alle Klassenreferenzen aus der Registrierungsliste entfernt, deren Instance
Handle dem des Packages entspricht.
1. Hab' ich das so richtig verstanden?
2. Was ist ein Instance
Handle? Ich kenne bisher Datei- und
DLL-Handles...?
3. Warum hat eine Klasse eines, oder doch nicht?
3. Wozu muss man das tun? Wären dann nicht alle registrierten Klassen der Liste zu entfernen, weil alle dieses
handle haben müssten? (es sei den man würde die Instanz der Liste jemandem außerhalb des Packages geben und
der würde sich über den Listenregistrierungsmechanismus auch registrieren)
Kann mir das mal bitte jemand erklären?
Benutztes Delphi ist in dem Projekt noch 10.1 Berlin.
zu 1: Soweit ich das verstehe, hast du Recht: Beim Entladen es Packages werden alle Klassen, die es zur Verfügung stellt, de-registriert, damit sie nicht aus Versehen instantiiert werden, was dann z.B. zu
Access Violations führen könnte.
zu 2: Da Packages nur glorifizierte DLLs sind, ist das Instance
Handle dasselbe, was Du schon kennst.
zu 3: Es ist nicht die Klasse, die es hat, sondern das
Package, in dem sie deklariert - registriert wird.
zu 4: Das System ist vermutlich darauf ausgerichtet, durch weitere Klassen in zusätzlichen Packages dynamisch erweitert zu werden (oder es gibt bereits schon mehrere Packages?).
twm