Ich habe es geschafft, eines der zugrunde liegenden Probleme, die in meiner Frage wurzeln, zu destillieren: Wie verfolgt _AddRef / _Release Aufrufe für OLE-Automatisierungsobjekte in der folgenden Einheit.
Ich antworte auch auf diese Antwort, nur für den Fall, dass jemand anderes darauf stößt.
Die Frage: Warum wird WINWORD.EXE mit dem folgenden Code nicht immer beendet (manchmal wird es beendet).
Das Gerät kann wahrscheinlich noch mehr getrimmt werden.
%Vor%Beantworten Sie Teil 1:
Kommentieren Sie die Verbindung im folgenden Ereignis:
%Vor%Das Ereignis wird während der DocumentClose-Methode (...) aufgerufen, dann wird die OLE-Schnittstelle von der FWordApplication-Instanz getrennt und gelöscht.
Ich habe noch nicht herausgefunden, welche Referenz baumelt, aber das hält WINWORD.EXE meistens am Leben.
Beantworten Sie Teil 2:
Manchmal wird WINWORD.EXE beendet, weil das WordApplication_DocumentBeforeClose -Ereignis nicht aufgerufen wird. Der Grund ist, dass der Code so schnell ausgeführt wird, dass Word noch nicht vollständig initialisiert ist, um das Ereignis auszuführen.
Tags und Links delphi delphi-xe2 ole