LPPROGRESS_ROUTINE função de retorno de chamada (winbase.h)

Uma função de retorno de chamada definida pelo aplicativo usada com as funções CopyFileEx, MoveFileTransacted e MoveFileWithProgress. Ele é chamado quando uma parte de uma operação de cópia ou movimentação é concluída. O tipo LPPROGRESS_ROUTINE define um ponteiro para essa função de retorno de chamada. CopyProgressRoutine é um espaço reservado para o nome da função definida pelo aplicativo.

Sintaxe

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
)
{...}

Parâmetros

[in] TotalFileSize

O tamanho total do arquivo, em bytes.

[in] TotalBytesTransferred

O número total de bytes transferidos do arquivo de origem para o arquivo de destino desde o início da operação de cópia.

[in] StreamSize

O tamanho total do fluxo de arquivos atual, em bytes.

[in] StreamBytesTransferred

O número total de bytes no fluxo atual que foram transferidos do arquivo de origem para o arquivo de destino desde o início da operação de cópia.

[in] dwStreamNumber

Um identificador para o fluxo atual. Na primeira vez que CopyProgressRoutine é chamado, o número do fluxo é 1.

[in] dwCallbackReason

O motivo pelo qual CopyProgressRoutine foi chamado. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
CALLBACK_CHUNK_FINISHED
0x00000000
Outra parte do arquivo de dados foi copiada.
CALLBACK_STREAM_SWITCH
0x00000001
Outro fluxo foi criado e está prestes a ser copiado. Esse é o motivo do retorno de chamada dado quando a rotina de retorno de chamada é invocada pela primeira vez.

[in] hSourceFile

Um identificador para o arquivo de origem.

[in] hDestinationFile

Um identificador para o arquivo de destino

[in, optional] lpData

Argumento passado para CopyProgressRoutine por CopyFileEx, MoveFileTransacted ou MoveFileWithProgress.

Retornar valor

A função CopyProgressRoutine deve retornar um dos valores a seguir.

Valor/código retornado Descrição
PROGRESS_CANCEL
1
Cancele a operação de cópia e exclua o arquivo de destino.
PROGRESS_CONTINUE
0
Continue a operação de cópia.
PROGRESS_QUIET
3
Continue a operação de cópia, mas pare de invocar CopyProgressRoutine para relatar o progresso.
PROGRESS_STOP
2
Interrompa a operação de cópia. Ele pode ser reiniciado posteriormente.

Comentários

Um aplicativo pode usar essas informações para exibir uma barra de progresso que mostra o número total de bytes copiados como uma porcentagem do tamanho total do arquivo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (inclua Windows.h)

Confira também

CopyFileEx

Funções de gerenciamento de arquivos

MoveFileTransacted

MoveFileWithProgress