CopyFileEx Callback Funktion
-
Hallo,
für CopyFileEx benötige ich ja eine Callback Funktion. Ich hab da auch was gefunden und umgeschrieben:
DWORD CALLBACK CopyProgressRoutine( LARGE_INTEGER TotalFileSize, // Datei Größe LARGE_INTEGER TotalBytesTransferred, // Kopierten Bytes LARGE_INTEGER StreamSize, // Stream Größe in Byte LARGE_INTEGER StreamBytesTransferred, // Kopierten Bytes des Streams DWORD dwStreamNumber, // aktueller Stream DWORD dwCallbackReason, // calelback reason HANDLE hSourceFile, // handle to source file HANDLE hDestinationFile, // handle to destination file LPVOID lpData // from CopyFileEx ) { Application->ProcessMessages(); if (copystop==false) return PROGRESS_CONTINUE; else return PROGRESS_CANCEL; }Aber was ist eine Callback Funktion eigentlich und was macht sie aus. Und was heißt DWORD,LPVOID,LARGE_INTEGER? Sind das Variablentypen von WINAPI oder was?
-
Hallo
eine Callback-Funktion ist eine Anwendung von Funktionspointern.
Das Prinzip ist immer dasselbe :
Du hast eine Funktion, die iterativ arbeitet (in deinem Fall CopyFileEx). Bei jedem Schritt soll eine anwendungsspezifische Funktion ausgeführt werden, die zu diesem Zweck "zurückgerufen" wird (in deinem Fall eine Überprüfung, ob das Kopieren fortgesetzt werden soll.Und was heißt DWORD,LPVOID,LARGE_INTEGER? Sind das Variablentypen von WINAPI oder was?
Das sind typdefs der WinAPI, hinter denen sich C- kompatible Daten verbergen.
Was genau, findest du im WinAPI-Forum oder in MSDN.bis bald
akari
-
daniel1986 schrieb:
Und was heißt DWORD,LPVOID,LARGE_INTEGER? Sind das Variablentypen von WINAPI oder was?
unter 32bit windoofs ist
DWORD --> ein unsigned 32 bit wert
LPVOID --> ein typloser zeiger (void*)
LARGE_INTEGER --> eine struct die aus 2 32-bit komponenten besteht (64 bits)
-
Vielen Dank für die schnelle Hilfe!