Versuchs mit
Delphi-Quellcode:
if CancelCopy = True then
begin
ShowMessage('Abbruch');
Result := PROGRESS_CANCEL;
Exit;
end
else
Application.ProcessMessages;
BTW, Application.ProcessMessages führt eine Ansychronität ein, die Du vermutlich nicht haben willst. Und Du solltest bei Abbruch die Funktion verlassen, sonst wird Dein Result wieder überschrieben. Zudem ist auf den ersten Blick der Rückgabewert nicht immer definiert (noch nicht ganz wach?).
Gruss Nico