Méthode ibackgroundcopyjob :: GetError, méthode
Récupère l’interface d’erreur après qu’une erreur s’est produite.
L’optimisation de la distribution génère un objet d’erreur lorsque l’état du travail est BG_JOB_STATE_ERROR ou BG_JOB_STATE_TRANSIENT_ERROR. Le service ne crée pas d’objet d’erreur lorsqu’un appel à une méthode d’interface IBackgroundCopyXXXX échoue. L’objet d’erreur est disponible jusqu’à ce que l’optimisation de la remise commence à transférer les données (l’état du travail passe à BG_JOB_STATE_TRANSFERRING) pour le travail ou jusqu’à ce que votre application se termine.
Syntaxe
HRESULT GetError(
[out] IBackgroundCopyError **ppError
);
Paramètres
-
ppError [ à]
-
Interface d’erreur qui fournit le code d’erreur, une description de l’erreur et le contexte dans lequel l’erreur s’est produite. Ce paramètre identifie également le fichier transféré au moment où l’erreur s’est produite. Libérez ppError quand vous avez terminé.
Valeur de retour
Cette méthode retourne les valeurs HRESULT suivantes, ainsi que d’autres.
| Code de retour | Description |
|---|---|
|
L’objet d’erreur a été généré. |
|
L’interface d’erreur est disponible uniquement lorsqu’une erreur se produit (BG_JOB_STATE_ERROR ou BG_JOB_STATE_TRANSIENT_ERROR) et avant que l’optimisation de la remise commence à transférer des données (BG_JOB_STATE_TRANSFERRING). |
Remarques
Le travail est placé dans un état d’erreur en cas d’erreurs irrécupérables. Utilisez l’une des options suivantes pour déterminer si le travail est en erreur :
- Pour interroger l’état de la tâche, appelez la méthode méthode ibackgroundcopyjob :: GetState . Le travail est erroné si l’État est BG_JOB_STATE_ERROR.
- Pour recevoir une notification lorsqu’une erreur se produit, implémentez l’interface IBackgroundCopyCallback (plus précisément, la méthode JobError ). Ensuite, appelez la méthode méthode ibackgroundcopyjob :: SetNotifyInterface pour inscrire le rappel et la méthode méthode ibackgroundcopyjob :: SetNotifyFlags pour définir l’indicateur de BG_NOTIFY_JOB_ERROR.
L’interface IBackgroundCopyError contient des informations que vous utilisez pour déterminer la cause de l’erreur et si le processus de transfert peut se poursuivre. Après avoir déterminé la cause de l’erreur, effectuez l’une des options suivantes :
- Pour annuler la tâche, appelez la méthode méthode ibackgroundcopyjob :: Cancel .
- Pour enregistrer les fichiers qui ont été transférés avec succès avant que l’erreur ne se produise, appelez la méthode méthode ibackgroundcopyjob :: Complete .
- Pour terminer le traitement du travail, corrigez le problème, puis appelez la méthode méthode ibackgroundcopyjob :: Resume .
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows 10, les applications de bureau version 1709 [ uniquement] |
| Serveur minimal pris en charge |
Windows Serveur, version 1709 [ applications de bureau uniquement] |
| En-tête |
|
| MIDL |
|
| Bibliothèque |
|
| DLL |
|
| IID |
IID_IBackgroundCopyJob est défini en tant que 37668D37-507E-4160-9316-26306D150B12 |