Sowas ähnliches geh auch im DataSnap bzw. RADServer von Emba,
welcher ebenfalls eine REST-Schnittstelle bietet.
Dazu dann auch noch Dinge ala Benutzerverwaltung/Zugriffsbeschränlungen einzelner Klassen oder Methoden.
Wie gesagt, hier wird die Funktion am Ende auf etwas Anderes umgeleitet und über das Framework aufgerufen, wo man vor dem Aufruf dann auch solche Prüfungen machen kann ... vor der Funktion und nicht erst darin.
Beim TVirtualMethodInterceptor wird die TypInfo der Klasse geklont, in der abgeleiteten
VMT mit den InterceptorCalls die virtuellen Methoden umgeleitet und dann in der Instanz der KlassenZeiger umgebogen.
Leider auch bei ALLEN Virtuellen und nicht nur die Gewollten (könnte man aber anschließend selber wieder an der
VMT rumfummeln/zurückbiegen).
beim Aufruf:
Adressen, Register und Stack in TInvokeInfo kopieren
intern mehrmals rumreichen
und am Ende wieder alles in Register/Stack schreiben und der CALL auf die originle Adresse.