функция обратного вызова 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 завершится ошибкой, возвратом HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED) и все частично скопированные фрагменты будут удалены.
|
|
Остановите операцию копирования. Функция CopyFile2 завершится сбоем, возвращается HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED) , и все частично скопированные фрагменты останутся без изменений. Операцию можно перезапустить с помощью флага COPY_FILE_RESUME_FROM_PAUSE , только если COPY_FILE_RESTARTABLE был задан в элементе dwCopyFlagsструктуры COPYFILE2_EXTENDED_PARAMETERS , переданной в функцию CopyFile2 .
|
|
Продолжайте операцию копирования, но не вызывайте функцию обратного вызова CopyFile2ProgressRoutine для этой операции. |
|
Приостановите операцию копирования. В большинстве случаев функция 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) |