Поделиться через


функция обратного вызова 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 . Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
CALLBACK_CHUNK_FINISHED
0x00000000
Была скопирована другая часть файла данных.
CALLBACK_STREAM_SWITCH
0x00000001
Был создан еще один поток, который будет скопирован. Это причина обратного вызова, указанная при первом вызове процедуры обратного вызова.

[in] hSourceFile

Дескриптор исходного файла.

[in] hDestinationFile

Дескриптор целевого файла

[in, optional] lpData

Аргумент, передаваемый в CopyProgressRoutine , методом CopyFileEx, MoveFileTransacted или MoveFileWithProgress.

Возвращаемое значение

Функция CopyProgressRoutine должна возвращать одно из следующих значений.

Возвращаемый код или значение Описание
PROGRESS_CANCEL
1
Отмените операцию копирования и удалите целевой файл.
PROGRESS_CONTINUE
0
Продолжите операцию копирования.
PROGRESS_QUIET
3
Продолжите операцию копирования, но остановите вызов CopyProgressRoutine , чтобы сообщить о ходе выполнения.
PROGRESS_STOP
2
Остановите операцию копирования. Его можно будет перезапустить позже.

Комментарии

Приложение может использовать эти сведения для отображения индикатора выполнения, отображающего общее количество байтов, скопированных в процентах от общего размера файла.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)

См. также раздел

CopyFileEx

Функции управления файлами

MoveFileTransacted

MoveFileWithProgress