Partager via


Interface IProgressDialog (shlobj_core.h)

Expose les méthodes qui fournissent des options permettant à une application d’afficher une boîte de dialogue de progression. Cette interface est exportée par l’objet de boîte de dialogue de progression (CLSID_ProgressDialog). Cet objet est un moyen générique d’afficher à un utilisateur la progression d’une opération. Il est généralement utilisé lors de la suppression, du chargement, de la copie, du déplacement ou du téléchargement d’un grand nombre de fichiers.

Héritage

L’interface IProgressDialog hérite de l’interface IUnknown. IProgressDialog a également les types de membres suivants :

Méthodes

L’interface IProgressDialog a ces méthodes.

 
IProgressDialog ::HasUserCancelled

Vérifie si l’utilisateur a annulé l’opération.
IProgressDialog ::SetAnimation

Spécifie un clip Audio-Video entrelacé (AVI) qui s’exécute dans la boîte de dialogue.
IProgressDialog ::SetCancelMsg

Définit un message à afficher si l’utilisateur annule l’opération.
IProgressDialog ::SetLine

Affiche un message dans la boîte de dialogue de progression.
IProgressDialog ::SetProgress

Mises à jour la boîte de dialogue de progression avec l’état actuel de l’opération. (IProgressDialog.SetProgress)
IProgressDialog ::SetProgress64

Mises à jour la boîte de dialogue de progression avec l’état actuel de l’opération. (IProgressDialog.SetProgress64)
IProgressDialog ::SetTitle

Définit le titre de la boîte de dialogue de progression.
IProgressDialog ::StartProgressDialog

Démarre la boîte de dialogue de progression.
IProgressDialog ::StopProgressDialog

Arrête la boîte de dialogue de progression et la supprime de l’écran.
IProgressDialog ::Timer

Rétablit le minuteur de la boîte de dialogue de progression à zéro.

Remarques

L’objet de boîte de dialogue de progression crée une boîte de dialogue sans mode et permet au client de définir son titre, son animation, ses lignes de texte et sa barre de progression. L’objet gère ensuite la mise à jour sur un thread d’arrière-plan et permet à l’utilisateur d’annuler l’opération. Si vous le souhaitez, il estime le temps restant jusqu’à la fin de l’opération et affiche les informations sous forme de ligne de texte.

Normalement, les applications n’implémentent pas cette interface. Il est exporté par l’objet de boîte de dialogue de progression pour une utilisation par les applications.

Utilisez cette interface lorsque votre application doit afficher une boîte de dialogue de progression. Pour initialiser l’objet :

  1. Créez un objet de boîte de dialogue de progression in-process (CLSID_ProgressDialog) avec CoCreateInstance. Demander un pointeur vers son interface IProgressDialog (IID_IProgressDialog).
  2. Appelez IProgressDialog ::SetTitle pour spécifier le titre de la boîte de dialogue.
  3. Appelez IProgressDialog ::SetAnimation pour spécifier un clip AVI à lire pendant la progression de l’opération.
  4. Appelez IProgressDialog ::SetCancelMsg pour spécifier le message qui s’affichera si l’utilisateur annule l’opération.
Pour afficher la progression de l’opération :
  1. Appelez IProgressDialog ::StartProgressDialog pour afficher la boîte de dialogue.
  2. Affectez une valeur numérique à la quantité totale de travail que l’opération effectuera. Utilisez n’importe quel nombre qui vous permet de définir facilement la progression de l’opération. Par exemple, définissez cette valeur sur 100 si vous souhaitez spécifier la progression de l’opération en termes de pourcentage terminé.
  3. Appelez IProgressDialog ::Timer pour réinitialiser le minuteur. Cette méthode définit le point de départ que l’objet de boîte de dialogue de progression utilise pour estimer le temps restant dans l’opération. Si vous n’appelez pas cette méthode, le point de départ sera l’appel à StartProgressDialog.
  4. À mesure que l’opération progresse, appelez régulièrement IProgressDialog ::SetProgress pour mettre à jour la boîte de dialogue quant à la quantité de l’opération terminée. L’objet de boîte de dialogue de progression met à jour sa barre de progression et recalcule son estimation du temps restant. Vous pouvez utiliser n’importe quelle mesure numérique de la progression qui vous convient. Toutefois, si vous souhaitez utiliser des valeurs supérieures à 4 gigaoctets (Go), vous devez appeler IProgressDialog ::SetProgress64 au lieu de IProgressDialog ::SetProgress.
  5. Votre application ne reçoit pas de notification si l’utilisateur clique sur le bouton Annuler pour annuler l’opération. À mesure que l’opération progresse, appelez régulièrement IProgressDialog ::HasUserCancelled pour voir si l’utilisateur a cliqué sur le bouton Annuler . Les applications appellent généralement cette méthode chaque fois qu’elles appellent IProgressDialog ::SetProgress ou IProgressDialog ::SetProgress64.
  6. La boîte de dialogue affiche trois lignes de texte. Une application peut appeler régulièrement IProgressDialog ::SetLine pour afficher un message sur l’une de ces lignes. Cette méthode est normalement utilisée pour fournir des informations sur la status actuelle de l’opération. Un message type est quelque chose comme : « En cours de traitement de l’élément XXX... ». Les messages sont généralement affichés sur les lignes 1 et 2. Vous pouvez afficher des messages à la ligne 3 uniquement si vous n’avez pas demandé à l’objet de boîte de dialogue de progression d’estimer le temps restant en définissant l’indicateur PROGDLG_AUTOTIME dans le paramètre dwFlags de IProgressDialog ::StartProgressDialog. Dans ce cas, la troisième ligne de texte est utilisée pour afficher l’heure estimée.
Une fois l’opération terminée :
  1. Appelez IProgressDialog ::StopProgressDialog pour fermer la boîte de dialogue.
  2. Relâchez l’objet de boîte de dialogue de progression.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel, Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shlobj_core.h