Wenn du von TInterfacedObject ableitest, dann ist die Referenzzählung bereits implementiert und du mußt das nicht selber einbauen, was IInterface als "Grundfunktion" benötigt.
Entweder du implementierst QueryInterface, _AddRef und _Release selber,
oder du leitest von TInterfacedObject, TAggregatedObject, TInterfacedPersistent oder TComponent ab und erbst deren Verhaltensweisen.
Bin mir nicht ganz sicher, aber wenn ich das mit der "
GUID" so richtig sehe, dann von TObject ableiten und selber implementieren,
oder vielleicht könnte es in Richtung TAggregatedObject gehen.
Also selber implementieren und da dann
IInterface(Obj) := Self;
oder IInterface(Obj) := Self as IInterface;
oder irgendwas mit Supports [edit] schau mal in TObject.GetInterface , wie Emba es dort gemacht hat, um aus "Self" einen Interface-Zeiger zu basteln
und
IInterface(Obj) := nil;