Функция CopyProgressRoutine - определяемая программой функция обратного вызова, используемая с функциями CopyFileEx и MoveFileWithProgress. Она вызывается тогда, когда завершается часть операции копирования или пересылки. Тип LPPROGRESS_ROUTINE определяет указатель на эту функцию обратного вызова. CopyProgresRoutine - символ - заместитель для определяемого программой имени функции.
Синтаксис
DWORD CALLBACK CopyProgressRoutine( LARGE_INTEGER TotalFileSize, // размер файла LARGE_INTEGER TotalBytesTransferred, // переносимые байты LARGE_INTEGER StreamSize, // байты в потоке LARGE_INTEGER StreamBytesTransferred, // переносимые потоком байты DWORD dwStreamNumber, // текущий поток DWORD dwCallbackReason, // причина возврата HANDLE hSourceFile, // дескриптор источ. файла HANDLE hDestinationFile, // дескриптор целевого файла LPVOID lpData // из CopyFileEx ); |
Параметры
TotalFileSize
[in] Общий размер файла, в байтах.TotalBytesTransferred
[in] Общее количество байтов, перенесенных из исходного файла в выходной файл, начиная от начала операции копирования.StreamSize
[in] Общий размер текущего потока файла, в байтах.StreamBytesTransferred
[in] Общее количество байтов в текущем потоке, которые были перенесены из исходного файла в выходной файл начиная от начала операции копирования.dwStreamNumber
[in] Дескриптор текущего потока. При вызове CopyProgressRoutine в первый раз, число потоков равно 1.dwCallbackReason
[in] Причина, по которой вызывается функция CopyProgressRoutine. Этот параметр может быть одним из нижеперечисленных значений.Значение | Предназначение |
---|---|
CALLBACK_CHUNK_FINISHED | Была скопирована еще одна часть данных в файле. |
CALLBACK_STREAM_SWITCH | Был создан еще один поток и он собирается делать копирование. Это - причина повторного вызова возникает тогда, когда процедура повторного вызова запускается впервые. |
hSourceFile
[in] Дескриптор исходного файла.hDestinationFile
[in] Дескриптор выходного файла.lpData
[in] Параметр передаваемый в CopyProgressRoutine функцией CopyFileEx или MoveFileWithProgress.Возвращаемые значения
Функция CopyProgressRoutine должна возвратить одно из нижеперечисленных значений.
Значение | Предназначение |
---|---|
PROGRESS_CONTINUE | Продолжать операцию копирования. |
PROGRESS_CANCEL | Отменить операцию копирования и удалить выходной файл. |
PROGRESS_STOP | Остановить операцию копирования. Она может быть перезапущена позже. |
PROGRESS_QUIET | Продолжать операцию копирования, но прекратить вызывать функцию CopyProgressRoutine, чтобы сообщать о ходе её выполнения. |
Замечания
Приложение может использовать эту информацию, чтобы показать на экране прогресс-индикатор, который показывает общее количество скопированных байтов, как процент от общего размера файла.
Смотри также
Обзор Управление файлами, Функции, используемые в управлении файлами, CopyFileEx, MoveFileWithProgress
Размещение и совместимость CopyProgressRoutine |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT Workstation |
Да версии 4.0 |
е |
Windows Me |
Нет |
н |
Windows 98 |
Нет |
т |
Windows 95 |
Нет |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да версии 4.0 |
в | ||
е | ||
р | ||
Используемая библиотека |
- |
|
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в |
Winbase.h |
|
- включено в |
Windows.h |
|
Unicode |
Нет |
|
Замечания по платформе |
Не имеется |