estrutura COPYFILE2_MESSAGE (winbase.h)

Passado para a função de retorno de chamada CopyFile2ProgressRoutine com informações sobre uma operação de cópia pendente.

Sintaxe

typedef struct COPYFILE2_MESSAGE {
  COPYFILE2_MESSAGE_TYPE Type;
  DWORD                  dwPadding;
  union {
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwReserved;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliChunkNumber;
      ULARGE_INTEGER uliChunkSize;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliTotalFileSize;
    } ChunkStarted;
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwFlags;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliChunkNumber;
      ULARGE_INTEGER uliChunkSize;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliStreamBytesTransferred;
      ULARGE_INTEGER uliTotalFileSize;
      ULARGE_INTEGER uliTotalBytesTransferred;
    } ChunkFinished;
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwReserved;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliTotalFileSize;
    } StreamStarted;
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwReserved;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliStreamBytesTransferred;
      ULARGE_INTEGER uliTotalFileSize;
      ULARGE_INTEGER uliTotalBytesTransferred;
    } StreamFinished;
    struct {
      DWORD dwReserved;
    } PollContinue;
    struct {
      COPYFILE2_COPY_PHASE CopyPhase;
      DWORD                dwStreamNumber;
      HRESULT              hrFailure;
      DWORD                dwReserved;
      ULARGE_INTEGER       uliChunkNumber;
      ULARGE_INTEGER       uliStreamSize;
      ULARGE_INTEGER       uliStreamBytesTransferred;
      ULARGE_INTEGER       uliTotalFileSize;
      ULARGE_INTEGER       uliTotalBytesTransferred;
    } Error;
  } Info;
} COPYFILE2_MESSAGE;

Membros

Type

Valor da enumeração COPYFILE2_MESSAGE_TYPE usada como um discriminador para a união info dentro dessa estrutura.

Valor Significado
COPYFILE2_CALLBACK_CHUNK_STARTED
1
Indica que uma única parte de um fluxo começou a ser copiada. As informações estão na estrutura ChunkStarted dentro da união Info .
COPYFILE2_CALLBACK_CHUNK_FINISHED
2
Indica que a cópia de uma única parte de um fluxo foi concluída. As informações estão na estrutura ChunkFinished dentro da união Info .
COPYFILE2_CALLBACK_STREAM_STARTED
3
Indica que os identificadores de origem e destino de um fluxo foram abertos e a cópia do fluxo está prestes a ser iniciada. As informações estão na estrutura StreamStarted dentro da união De informações . Isso não indica que a cópia foi iniciada para esse fluxo.
COPYFILE2_CALLBACK_STREAM_FINISHED
4
Indica que a operação de cópia de um fluxo começou a ser concluída, seja com êxito ou devido a um retorno de COPYFILE2_PROGRESS_STOP de CopyFile2ProgressRoutine. As informações estão na estrutura StreamFinished dentro da união De informações .
COPYFILE2_CALLBACK_POLL_CONTINUE
5
Pode ser enviado periodicamente. As informações estão na estrutura PollContinue dentro da união Info .
COPYFILE2_CALLBACK_ERROR
6
Um erro foi encontrado durante a operação de cópia. As informações estão na estrutura Erro dentro da união De informações .

dwPadding

Info

Info.ChunkStarted

Essa estrutura será selecionada se o membro Type estiver definido como COPYFILE2_CALLBACK_CHUNK_STARTED (1).

Info.ChunkStarted.dwStreamNumber

Indica qual fluxo dentro do arquivo está prestes a ser copiado. O valor usado para identificar um fluxo dentro de um arquivo será iniciado em um (1) e sempre será maior do que qualquer fluxo anterior para esse arquivo.

Info.ChunkStarted.dwReserved

Esse membro é reservado para uso interno.

Info.ChunkStarted.hSourceFile

Manipule para o fluxo de origem.

Info.ChunkStarted.hDestinationFile

Manipule para o fluxo de destino.

Info.ChunkStarted.uliChunkNumber

Indica qual parte dentro do fluxo atual está prestes a ser copiada. O valor usado para uma parte começará em zero (0) e sempre será maior do que o de qualquer parte anterior para o fluxo atual.

Info.ChunkStarted.uliChunkSize

Tamanho da parte copiada, em bytes.

Info.ChunkStarted.uliStreamSize

Tamanho do fluxo atual, em bytes.

Info.ChunkStarted.uliTotalFileSize

Tamanho de todos os fluxos para esse arquivo, em bytes.

Info.ChunkFinished

Essa estrutura será selecionada se o membro Type estiver definido como COPYFILE2_CALLBACK_CHUNK_FINISHED (2).

ChunkFinished.dwReserved

Esse membro é reservado para uso interno.

Info.ChunkFinished.dwStreamNumber

Indica qual fluxo dentro do arquivo está prestes a ser copiado. O valor usado para identificar um fluxo dentro de um arquivo será iniciado em um (1) e sempre será maior do que qualquer fluxo anterior para esse arquivo.

Info.ChunkFinished.dwFlags

Info.ChunkFinished.hSourceFile

Manipule para o fluxo de origem.

Info.ChunkFinished.hDestinationFile

Manipule para o fluxo de destino.

Info.ChunkFinished.uliChunkNumber

Indica qual parte dentro do fluxo atual está em processo. O valor usado para uma parte começará em zero (0) e sempre será maior do que o de qualquer parte anterior para o fluxo atual.

Info.ChunkFinished.uliChunkSize

Tamanho da parte copiada, em bytes.

Info.ChunkFinished.uliStreamSize

Tamanho do fluxo atual, em bytes.

Info.ChunkFinished.uliStreamBytesTransferred

Total de bytes copiados para esse fluxo até agora.

Info.ChunkFinished.uliTotalFileSize

Tamanho de todos os fluxos para esse arquivo, em bytes.

Info.ChunkFinished.uliTotalBytesTransferred

Total de bytes copiados para esse arquivo até agora.

Info.StreamStarted

Essa estrutura será selecionada se o membro Type estiver definido como COPYFILE2_CALLBACK_STREAM_STARTED (3).

Info.StreamStarted.dwStreamNumber

Indica qual fluxo dentro do arquivo está prestes a ser copiado. O valor usado para identificar um fluxo dentro de um arquivo será iniciado em um (1) e sempre será maior do que qualquer fluxo anterior para esse arquivo.

Info.StreamStarted.dwReserved

Esse membro é reservado para uso interno.

Info.StreamStarted.hSourceFile

Manipule para o fluxo de origem.

Info.StreamStarted.hDestinationFile

Manipule para o fluxo de destino.

Info.StreamStarted.uliStreamSize

Tamanho do fluxo atual, em bytes.

Info.StreamStarted.uliTotalFileSize

Tamanho de todos os fluxos para esse arquivo, em bytes.

Info.StreamFinished

Essa estrutura será selecionada se o membro Type estiver definido como COPYFILE2_CALLBACK_STREAM_FINISHED (4).

Info.StreamFinished.dwStreamNumber

Indica qual fluxo dentro do arquivo está prestes a ser copiado. O valor usado para identificar um fluxo dentro de um arquivo será iniciado em um (1) e sempre será maior do que qualquer fluxo anterior para esse arquivo.

Info.StreamFinished.dwReserved

Esse membro é reservado para uso interno.

Info.StreamFinished.hSourceFile

Manipule para o fluxo de origem.

Info.StreamFinished.hDestinationFile

Manipule para o fluxo de destino.

Info.StreamFinished.uliStreamSize

Tamanho do fluxo atual, em bytes.

Info.StreamFinished.uliStreamBytesTransferred

Total de bytes copiados para esse fluxo até agora.

Info.StreamFinished.uliTotalFileSize

Tamanho de todos os fluxos para esse arquivo, em bytes.

Info.StreamFinished.uliTotalBytesTransferred

Total de bytes copiados para esse arquivo até agora.

Info.PollContinue

Essa estrutura será selecionada se o membro Type estiver definido como COPYFILE2_CALLBACK_POLL_CONTNUE (5).

Info.PollContinue.dwReserved

Esse membro é reservado para uso interno.

Info.Error

Essa estrutura será selecionada se o membro Type estiver definido como COPYFILE2_CALLBACK_ERROR (6).

Info.Error.CopyPhase

Valor da enumeração COPYFILE2_COPY_PHASE indicando a fase atual da cópia no momento do erro.

Info.Error.dwStreamNumber

O número do fluxo que estava sendo processado no momento do erro.

Info.Error.hrFailure

Valor que indica o problema.

Info.Error.dwReserved

Esse membro é reservado para uso interno.

Info.Error.uliChunkNumber

Indica qual parte dentro do fluxo atual estava sendo processada no momento do erro. O valor usado para uma parte começará em zero (0) e sempre será maior do que o de qualquer parte anterior para o fluxo atual.

Info.Error.uliStreamSize

Tamanho, em bytes, do fluxo que está sendo processado.

Info.Error.uliStreamBytesTransferred

Número de bytes que foram transferidos com êxito para o fluxo que está sendo processado.

Info.Error.uliTotalFileSize

Tamanho, em bytes, do arquivo total que está sendo processado.

Info.Error.uliTotalBytesTransferred

Número de bytes que foram transferidos com êxito para toda a operação de cópia.

Comentários

Para compilar um aplicativo que usa a estrutura COPYFILE2_MESSAGE , defina a macro _WIN32_WINNT como 0x0601 ou posterior. Para obter mais informações, consulte Usando os cabeçalhos do Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Cabeçalho winbase.h (inclua Windows.h)