structure COPYFILE2_MESSAGE (winbase.h)

Transmis à la fonction de rappel CopyFile2ProgressRoutine avec des informations sur une opération de copie en attente.

Syntaxe

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;

Membres

Type

Valeur de l’énumération COPYFILE2_MESSAGE_TYPE utilisée comme discriminant pour l’union d’informations au sein de cette structure.

Valeur Signification
COPYFILE2_CALLBACK_CHUNK_STARTED
1
Indique qu’un seul segment d’un flux a commencé à être copié. Les informations se trouvent dans la structure ChunkStarted au sein de l’union d’informations .
COPYFILE2_CALLBACK_CHUNK_FINISHED
2
Indique que la copie d’un segment unique d’un flux est terminée. Les informations se trouvent dans la structure ChunkFinished au sein de l’union d’informations .
COPYFILE2_CALLBACK_STREAM_STARTED
3
Indique que les handles source et de destination d’un flux ont été ouverts et que la copie du flux est sur le point d’être démarrée. Les informations se trouvent dans la structure StreamStarted au sein de l’union d’informations . Cela n’indique pas que la copie a démarré pour ce flux.
COPYFILE2_CALLBACK_STREAM_FINISHED
4
Indique que l’opération de copie d’un flux a commencé à être terminée, soit avec succès, soit en raison d’un retour COPYFILE2_PROGRESS_STOP à partir de CopyFile2ProgressRoutine. Les informations se trouvent dans la structure StreamFinished au sein de l’union d’informations .
COPYFILE2_CALLBACK_POLL_CONTINUE
5
Peut être envoyé périodiquement. Les informations se trouvent dans la structure PollContinue au sein de l’union d’informations .
COPYFILE2_CALLBACK_ERROR
6
Une erreur a été rencontrée lors de l’opération de copie. Les informations se trouvent dans la structure d’erreur au sein de l’union d’informations .

dwPadding

Info

Info.ChunkStarted

Cette structure est sélectionnée si le membre Type est défini sur COPYFILE2_CALLBACK_CHUNK_STARTED (1).

Info.ChunkStarted.dwStreamNumber

Indique quel flux dans le fichier est sur le point d’être copié. La valeur utilisée pour identifier un flux dans un fichier commence à un (1) et sera toujours supérieure à n’importe quel flux précédent pour ce fichier.

Info.ChunkStarted.dwReserved

Ce membre est réservé à un usage interne.

Info.ChunkStarted.hSourceFile

Gérez le flux source.

Info.ChunkStarted.hDestinationFile

Gérez le flux de destination.

Info.ChunkStarted.uliChunkNumber

Indique le segment du flux actuel qui est sur le point d’être copié. La valeur utilisée pour un segment commence à zéro (0) et sera toujours supérieure à celle de n’importe quel segment précédent pour le flux actuel.

Info.ChunkStarted.uliChunkSize

Taille du segment copié, en octets.

Info.ChunkStarted.uliStreamSize

Taille du flux actuel, en octets.

Info.ChunkStarted.uliTotalFileSize

Taille de tous les flux de ce fichier, en octets.

Info.ChunkFinished

Cette structure est sélectionnée si le membre Type est défini sur COPYFILE2_CALLBACK_CHUNK_FINISHED (2).

ChunkFinished.dwReserved

Ce membre est réservé à un usage interne.

Info.ChunkFinished.dwStreamNumber

Indique quel flux dans le fichier est sur le point d’être copié. La valeur utilisée pour identifier un flux dans un fichier commence à un (1) et sera toujours supérieure à n’importe quel flux précédent pour ce fichier.

Info.ChunkFinished.dwFlags

Info.ChunkFinished.hSourceFile

Gérez le flux source.

Info.ChunkFinished.hDestinationFile

Gérez le flux de destination.

Info.ChunkFinished.uliChunkNumber

Indique le segment du flux actuel en cours de traitement. La valeur utilisée pour un segment commence à zéro (0) et sera toujours supérieure à celle de n’importe quel segment précédent pour le flux actuel.

Info.ChunkFinished.uliChunkSize

Taille du segment copié, en octets.

Info.ChunkFinished.uliStreamSize

Taille du flux actuel, en octets.

Info.ChunkFinished.uliStreamBytesTransferred

Nombre total d’octets copiés pour ce flux jusqu’à présent.

Info.ChunkFinished.uliTotalFileSize

Taille de tous les flux de ce fichier, en octets.

Info.ChunkFinished.uliTotalBytesTransferred

Nombre total d’octets copiés pour ce fichier jusqu’à présent.

Info.StreamStarted

Cette structure est sélectionnée si le membre Type est défini sur COPYFILE2_CALLBACK_STREAM_STARTED (3).

Info.StreamStarted.dwStreamNumber

Indique quel flux dans le fichier est sur le point d’être copié. La valeur utilisée pour identifier un flux dans un fichier commence à un (1) et sera toujours supérieure à n’importe quel flux précédent pour ce fichier.

Info.StreamStarted.dwReserved

Ce membre est réservé à un usage interne.

Info.StreamStarted.hSourceFile

Gérez le flux source.

Info.StreamStarted.hDestinationFile

Gérez le flux de destination.

Info.StreamStarted.uliStreamSize

Taille du flux actuel, en octets.

Info.StreamStarted.uliTotalFileSize

Taille de tous les flux de ce fichier, en octets.

Info.StreamFinished

Cette structure est sélectionnée si le membre Type est défini sur COPYFILE2_CALLBACK_STREAM_FINISHED (4).

Info.StreamFinished.dwStreamNumber

Indique quel flux dans le fichier est sur le point d’être copié. La valeur utilisée pour identifier un flux dans un fichier commence à un (1) et sera toujours supérieure à n’importe quel flux précédent pour ce fichier.

Info.StreamFinished.dwReserved

Ce membre est réservé à un usage interne.

Info.StreamFinished.hSourceFile

Gérez le flux source.

Info.StreamFinished.hDestinationFile

Gérez le flux de destination.

Info.StreamFinished.uliStreamSize

Taille du flux actuel, en octets.

Info.StreamFinished.uliStreamBytesTransferred

Nombre total d’octets copiés pour ce flux jusqu’à présent.

Info.StreamFinished.uliTotalFileSize

Taille de tous les flux de ce fichier, en octets.

Info.StreamFinished.uliTotalBytesTransferred

Nombre total d’octets copiés pour ce fichier jusqu’à présent.

Info.PollContinue

Cette structure est sélectionnée si le membre Type est défini sur COPYFILE2_CALLBACK_POLL_CONTNUE (5).

Info.PollContinue.dwReserved

Ce membre est réservé à un usage interne.

Info.Error

Cette structure est sélectionnée si le membre Type est défini sur COPYFILE2_CALLBACK_ERROR (6).

Info.Error.CopyPhase

Valeur de l’énumération COPYFILE2_COPY_PHASE indiquant la phase actuelle de la copie au moment de l’erreur.

Info.Error.dwStreamNumber

Numéro du flux en cours de traitement au moment de l’erreur.

Info.Error.hrFailure

Valeur indiquant le problème.

Info.Error.dwReserved

Ce membre est réservé à un usage interne.

Info.Error.uliChunkNumber

Indique le segment du flux actuel en cours de traitement au moment de l’erreur. La valeur utilisée pour un segment commence à zéro (0) et sera toujours supérieure à celle de n’importe quel segment précédent pour le flux actuel.

Info.Error.uliStreamSize

Taille, en octets, du flux en cours de traitement.

Info.Error.uliStreamBytesTransferred

Nombre d’octets qui avaient été correctement transférés pour le flux en cours de traitement.

Info.Error.uliTotalFileSize

Taille, en octets, du fichier total en cours de traitement.

Info.Error.uliTotalBytesTransferred

Nombre d’octets qui avaient été correctement transférés pour l’ensemble de l’opération de copie.

Remarques

Pour compiler une application qui utilise la structure COPYFILE2_MESSAGE , définissez la macro _WIN32_WINNT comme 0x0601 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
En-tête winbase.h (inclure Windows.h)