TerminateListener muss ein Objekt sein, was das Interface XTerminateListener implementiert.
Das musst du wahrscheinlich selber implementieren.
Aus der hohlen Hand mal runtergetippt:
Delphi-Quellcode:
XTerminateListener =
interface(XEventListener)
[Irgendeine_GUID_die_wohl_schon_vorhanden_ist]
procedure queryTermination(
const Event : EventObject);
stdcall;
procedure notifyTermination(
const Event : EventObject);
stdcall;
end;
TDeineLustigeKleineListenererKlasse =
class(TInterfacedObject, XTerminateListener)
public
procedure notifyTermination(
const Event: EventObject);
stdcall;
procedure queryTermination(
const Event: EventObject);
stdcall;
end;
...
{ TDeineLustigeKleineListenererKlasse }
procedure TDeineLustigeKleineListenererKlasse.notifyTermination(
const Event: EventObject);
begin
Writeln('
notifyTermination wurde gerufen!');
end;
procedure TDeineLustigeKleineListenererKlasse.queryTermination(
const Event: EventObject);
begin
Writeln('
queryTermination wurde gerufen!');
end;
...
var
DeinXDesktop : XDesktop;
DeinListener : XTerminateListener;
begin
DeinXDesktop := ServiceManager.createInstance ('
com.sun.star.frame.XDesktop');
DeinListener := TDeineLustigeKleineListenererKlasse.Create;
DeinXDesktop.addTerminateListener(DeinListener);
end;