Wo ist die Frage zu den Variants?
Variant ist ein Typ, wie z.B. Integer, allerdings kann der mehrere verschiedene Werte enthalten, also man kann da Strings, Integer, Interfaces, Arrays usw. dort reipacken.
Selbst genutzt hab ich das noch nicht, aber es gibt bestimmt Tutorials dafür.
Im Prinzip erstellt man ein Interface, welches, bzw. dessen
DLL bei Windows registriert wird.
Und das dann von anderen Programmen abgefragt werden kann.
z.B. die Interfaces des MS-
XML-
DOM (IXMLDocument usw.)
https://www.google.de/search?q=windows+dll+registrieren
über
Delphi DLL erstellen Regsvr32 oder sonstwie, sollten sich Tutorials finden lassen