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 |
---|---|
|
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 . |
|
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 . |
|
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. |
|
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 . |
|
Peut être envoyé périodiquement. Les informations se trouvent dans la structure PollContinue au sein de l’union d’informations . |
|
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) |