Du arbeitest da jetzt zwar mit Generics (was mal wieder Neuland für mich ist), aber prinzipiell schiebst du da über ein Interface auch nur einen
UnicodeWide-String (AExample.Connection.Host) zwischen der
DLL und der Hostanwendung hin und her. So weit war ich ja mit meinem Code auch, wenn auch wesentlich weniger elegant. Da sehe ich aber noch nix von wegen gemeinsamer Nutzung einer TConnection (bzw. im Fall von UniDAC einer TUniConnection).
Das Interface kapselt ja die TConnection. Das müsstest du dann auch machen. Bei der Zuweisung an ein anderes Interface wird die in dem Objekt, das hinter dem Interface steckt wieder auf das Objekt gecastet. So kannst du dann deine Connection in ein Interface stecken, an die
DLL übergeben und dort an ein anderes Interface zuweisen, das du ebenfalls von deiner Anwendung bekommen hast. Dieses löst dann das Objekt auf und weist es an die echte Connection Eigenschaft zu.