Hatte oben noch bissl was geändert ... mit so "dynamischen" GUIDs kann Delphi standardmäßig halt nicht umgehen,
da dort normaler Weise alles über die statischen Interface-Tabellen in der
RTTI läuft.
Du könntest es vielleicht so machen, dass es intern einfach über den Zeiger vom IInterface läuft
und leitest im QueryInterface dann bei der
GUID es auf IInterface um, für die Berechnung des nötigen Interfacezeigers im QueryInterface.
In QueryInterface muß/sollte aber unbedingt auch IInterface {00000000-0000-0000-C000-000000000046} implementiert sein, denn ich vermute, dass es sonst knallt, wenn jemand dieses Interface abfragt, welches Delphi fast überall als Grundinterface "verlangt".
Bzw. implementiere es als ein "normales" Interface mit "statischer"
GUID und leite es von der dynamischen
GUID auf diese Statische um, falls überhaupt eine dynamische
GUID nötig ist und man es nicht gleich Statisch implementieren kann.
nil+E_NOINTERFACE wäre für IInterface vermutlich bissl ungeschickt.
Für genauere Dinge hab ich im Moment aber auch erstmal keine Zeit.