Naja so wie ich das sehe werden Interfaces immer dann freigegeben wenn sie nicht mehr verwendet werden.
Wenn man z.b. für IXMLDomDocument eine Membervariable anlegt dann wird sie halt erst freigegeben, wenn
das Objekt an dem sie hängt zerstört wird oder sie explizit auf nil gesetzt wird.
Also in dem Fall:
Delphi-Quellcode:
type
TBeispiel = class ( TObject )
private
m_IXMLDOMDOCUMENT: IXMLDOMDOCUMENT2;
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
end;
Und wenn sie innerhalb von Methoden verwendet werden, dann werden sie halt am Ende dieser freigegeben ( falls sie nicht irgendwie gesichert wurden z.b. ). Außer man sagt halt wieder explizit das man sie nicht mehr braucht per NIL.
Also in dem Fall:
Delphi-Quellcode:
procedure Beispiel;
var
IXMLDOMDOCUMENT: IXMLDOMDOCUMENT2;
begin
IXMLDOMDOCUMENT := coDOMDocument60.Create;
IXMLDOMDOCUMENT.TUWAS;
end;
Ich halte das soweit für völlig sinnvoll, da Delphi sie halt erst freigibt wenn keine Referenz mehr vorhanden ist.