Einzelnen Beitrag anzeigen

MetalChris

Registriert seit: 10. Aug 2012
10 Beiträge
 
#1

Objekt in ROT registrieren und deregistrieren

  Alt 26. Sep 2012, 13:50
Delphi-Version: XE2
Hi,
habe das Problem, das wenn ich versuche das regestrierte Object wieder aus der ROT zu löschen, er mir mit einem Stackoverflow aussteigt


Das Object regestriere ich so:

Delphi-Quellcode:
procedure TApplication.Initialize;
begin
  inherited;

  GlobalCOMInstance := Self;

  //Register object in ROT
  OleCheck(RegisterActiveObject(Self, CLASS_Application, ActiveObject_Weak, FROTCookie));
  OleCheck(CoLockObjectExternal(Self, True, True));
end;



Nach dem schließen versuche ich das Objekt aus der ROT zu löschen, hier steigt er dann mit einem Stackoverflow aus:

Delphi-Quellcode:
destructor TApplication.Destroy;
begin
  //Remove object from ROT
  TRY
    OleCheck(CoLockObjectExternal(Self, False, True));
    OleCheck(RevokeActiveObject(FROTCookie, nil));
  EXCEPT

  END;

  inherited;
end;
  Mit Zitat antworten Zitat