Функция 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 |
Нет |
|
| Замечания по платформе |
Не имеется |
|