Du müsstest deine Routine so deklarieren:
Delphi-Quellcode:
function CopyProgressRoutine(TotalFileSize, TotalBytesTransferred, StreamSize,
StreamBytesTransferred: int64; dwStreamNumber, dwCallbackReason: DWORD;
hSourceFile, hDestinationFile: THandle; lpData: pointer): DWORD; stdcall;
begin
...
end;
Wichtig sind das
stdcall, die exakten Typen der Parameter (int64) und dass es sich nicht um die Methode eines Objekts handeln darf. Bei der Angabe als Parameter machst du dann ein @ vor den Namen, also:
Delphi-Quellcode:
Result := MoveFileWithProgress(pchar(FilenameSource),
pchar(FilenameDest),
@CopyProgressRoutine,
nil,
MOVEFILE_REPLACE_EXISTING);