функция обратного вызова LPPROGRESS_ROUTINE (winbase.h)
Определяемая приложением функция обратного вызова, используемая с функциями CopyFileEx, MoveFileTransacted и MoveFileWithProgress . Он вызывается при завершении части операции копирования или перемещения. Тип LPPROGRESS_ROUTINE определяет указатель на эту функцию обратного вызова. CopyProgressRoutine — это заполнитель для имени функции, определяемой приложением.
Синтаксис
LPPROGRESS_ROUTINE LpprogressRoutine;
DWORD LpprogressRoutine(
[in] LARGE_INTEGER TotalFileSize,
[in] LARGE_INTEGER TotalBytesTransferred,
[in] LARGE_INTEGER StreamSize,
[in] LARGE_INTEGER StreamBytesTransferred,
[in] DWORD dwStreamNumber,
[in] DWORD dwCallbackReason,
[in] HANDLE hSourceFile,
[in] HANDLE hDestinationFile,
[in, optional] LPVOID lpData
)
{...}
Параметры
[in] TotalFileSize
Общий размер файла в байтах.
[in] TotalBytesTransferred
Общее число байтов, переданных из исходного файла в целевой с момента начала операции копирования.
[in] StreamSize
Общий размер текущего файлового потока в байтах.
[in] StreamBytesTransferred
Общее количество байтов в текущем потоке, которые были переданы из исходного файла в целевой файл с момента начала операции копирования.
[in] dwStreamNumber
Дескриптор текущего потока. При первом вызове CopyProgressRoutine номер потока равен 1.
[in] dwCallbackReason
Причина вызова CopyProgressRoutine . Этот параметр может принимать одно из указанных ниже значений.
[in] hSourceFile
Дескриптор исходного файла.
[in] hDestinationFile
Дескриптор целевого файла
[in, optional] lpData
Аргумент, передаваемый в CopyProgressRoutine , методом CopyFileEx, MoveFileTransacted или MoveFileWithProgress.
Возвращаемое значение
Функция CopyProgressRoutine должна возвращать одно из следующих значений.
Возвращаемый код или значение | Описание |
---|---|
|
Отмените операцию копирования и удалите целевой файл. |
|
Продолжите операцию копирования. |
|
Продолжите операцию копирования, но остановите вызов CopyProgressRoutine , чтобы сообщить о ходе выполнения. |
|
Остановите операцию копирования. Его можно будет перезапустить позже. |
Комментарии
Приложение может использовать эти сведения для отображения индикатора выполнения, отображающего общее количество байтов, скопированных в процентах от общего размера файла.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |