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


функция обратного вызова PCOPYFILE2_PROGRESS_ROUTINE (winbase.h)

Определяемая приложением функция обратного вызова, используемая с функцией CopyFile2 . Он вызывается при завершении части операции копирования или перемещения. Тип PCOPYFILE2_PROGRESS_ROUTINE определяет указатель на эту функцию обратного вызова. CopyFile2ProgressRoutine — это заполнитель для имени функции, определяемой приложением.

Синтаксис

PCOPYFILE2_PROGRESS_ROUTINE Pcopyfile2ProgressRoutine;

COPYFILE2_MESSAGE_ACTION Pcopyfile2ProgressRoutine(
  [in]           const COPYFILE2_MESSAGE *pMessage,
  [in, optional] PVOID pvCallbackContext
)
{...}

Параметры

[in] pMessage

Указатель на структуру COPYFILE2_MESSAGE .

[in, optional] pvCallbackContext

Копия значения, переданного в члене pvCallbackContextструктуры COPYFILE2_EXTENDED_PARAMETERS , переданной в CopyFile2.

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

Значение из перечисления COPYFILE2_MESSAGE_ACTION , указывающее, какое действие следует предпринять.

Возвращаемый код или значение Описание
COPYFILE2_PROGRESS_CONTINUE
0
Продолжите операцию копирования.
COPYFILE2_PROGRESS_CANCEL
1
Отмена операции копирования. Функция CopyFile2 завершится ошибкой, возвратом HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED) и все частично скопированные фрагменты будут удалены.
COPYFILE2_PROGRESS_STOP
2
Остановите операцию копирования. Функция CopyFile2 завершится сбоем, возвращается HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED) , и все частично скопированные фрагменты останутся без изменений. Операцию можно перезапустить с помощью флага COPY_FILE_RESUME_FROM_PAUSE , только если COPY_FILE_RESTARTABLE был задан в элементе dwCopyFlagsструктуры COPYFILE2_EXTENDED_PARAMETERS , переданной в функцию CopyFile2 .
COPYFILE2_PROGRESS_QUIET
3
Продолжайте операцию копирования, но не вызывайте функцию обратного вызова CopyFile2ProgressRoutine для этой операции.
COPYFILE2_PROGRESS_PAUSE
4
Приостановите операцию копирования. В большинстве случаев функция CopyFile2 завершается сбоем и возвращается HRESULT_FROM_WIN32(ERROR_REQUEST_PAUSED) , а все частично скопированные фрагменты останутся без изменений (за исключением заголовка, записанного для возобновления операции копирования позже).) Если операция копирования была завершена во время обработки запроса приостановки, вызов CopyFile2 завершится успешно, и заголовок резюме не будет записан.

Комментарии

Сообщение COPYFILE2_CALLBACK_STREAM_FINISHED является последним сообщением для приостановленной копии. Если COPYFILE2_PROGRESS_PAUSE возвращается в ответ на COPYFILE2_CALLBACK_STREAM_FINISHED сообщение, дальнейшие обратные вызовы не будут отправляться.

Чтобы скомпилировать приложение, использующее тип указателя функции PCOPYFILE2_PROGRESS_ROUTINE , определите макрос _WIN32_WINNT как 0x0601 или более поздней версии. Дополнительные сведения см. в разделе Использование заголовков Windows.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
Прозрачная отработка отказа (TFO) SMB 3.0 Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да

Требования

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