IProgressDialog-Schnittstelle (shlobj_core.h)

Macht Methoden verfügbar, die Optionen für eine Anwendung zum Anzeigen eines Statusdialogfelds bereitstellen. Diese Schnittstelle wird vom Statusdialogfeldobjekt (CLSID_ProgressDialog) exportiert. Dieses Objekt ist eine generische Möglichkeit, einem Benutzer den Fortschritt eines Vorgangs zu zeigen. Sie wird in der Regel beim Löschen, Hochladen, Kopieren, Verschieben oder Herunterladen einer großen Anzahl von Dateien verwendet.

Vererbung

Die IProgressDialog-Schnittstelle erbt von der IUnknown-Schnittstelle . IProgressDialog verfügt auch über folgende Arten von Membern:

Methoden

Die IProgressDialog-Schnittstelle verfügt über diese Methoden.

 
IProgressDialog::HasUserCancelled

Überprüft, ob der Benutzer den Vorgang abgebrochen hat.
IProgressDialog::SetAnimation

Gibt einen Audio-Video interleaved (AVI)-Clip an, der im Dialogfeld ausgeführt wird.
IProgressDialog::SetCancelMsg

Legt eine Meldung fest, die angezeigt wird, wenn der Benutzer den Vorgang abbricht.
IProgressDialog::SetLine

Zeigt eine Meldung im Statusdialogfeld an.
IProgressDialog::SetProgress

Updates das Statusdialogfeld mit dem aktuellen Status des Vorgangs. (IProgressDialog.SetProgress)
IProgressDialog::SetProgress64

Updates das Statusdialogfeld mit dem aktuellen Status des Vorgangs. (IProgressDialog.SetProgress64)
IProgressDialog::SetTitle

Legt den Titel des Statusdialogfelds fest.
IProgressDialog::StartProgressDialog

Startet das Statusdialogfeld.
IProgressDialog::StopProgressDialog

Beendet das Statusdialogfeld und entfernt es vom Bildschirm.
IProgressDialog::Timer

Setzt den Statusdialogzeitgeber auf 0 zurück.

Hinweise

Das Statusdialogfeldobjekt erstellt ein modusloses Dialogfeld und ermöglicht es dem Client, Titel, Animation, Textzeilen und Statusleiste festzulegen. Das -Objekt übernimmt dann die Aktualisierung in einem Hintergrundthread und ermöglicht es dem Benutzer, den Vorgang abzubrechen. Optional wird die verbleibende Zeit bis zum Abschluss des Vorgangs geschätzt und die Informationen als Textzeile angezeigt.

Anwendungen implementieren diese Schnittstelle normalerweise nicht. Es wird vom Statusdialogfeldobjekt zur Verwendung durch Anwendungen exportiert.

Verwenden Sie diese Schnittstelle, wenn Ihre Anwendung ein Statusdialogfeld anzeigen muss. So initialisieren Sie das Objekt:

  1. Erstellen Sie mit CoCreateInstance ein Prozessstatusdialogfeldobjekt (CLSID_ProgressDialog). Fordern Sie einen Zeiger auf die IProgressDialog-Schnittstelle (IID_IProgressDialog) an.
  2. Rufen Sie IProgressDialog::SetTitle auf, um den Titel des Dialogfelds anzugeben.
  3. Rufen Sie IProgressDialog::SetAnimation auf, um einen AVI-Clip anzugeben, der während des Vorgangs wiedergegeben werden soll.
  4. Rufen Sie IProgressDialog::SetCancelMsg auf, um die Meldung anzugeben, die angezeigt wird, wenn der Benutzer den Vorgang abbricht.
So zeigen Sie den Fortschritt des Vorgangs an:
  1. Rufen Sie IProgressDialog::StartProgressDialog auf, um das Dialogfeld anzuzeigen.
  2. Weisen Sie der Gesamtarbeit, die der Vorgang ausführt, einen numerischen Wert zu. Verwenden Sie eine beliebige Zahl, mit der Sie den Fortschritt des Vorgangs bequem definieren können. Legen Sie beispielsweise diesen Wert auf 100 fest, wenn Sie den Fortschritt des Vorgangs in Bezug auf den Prozentsatz angeben möchten, der abgeschlossen wurde.
  3. Rufen Sie IProgressDialog::Timer auf, um den Timer zurückzusetzen. Diese Methode legt den Startpunkt fest, den das Statusdialogobjekt verwendet, um die verbleibende Zeit im Vorgang zu schätzen. Wenn Sie diese Methode nicht aufrufen, ist der Startpunkt der Aufruf von StartProgressDialog.
  4. Rufen Sie im Verlauf des Vorgangs regelmäßig IProgressDialog::SetProgress auf, um das Dialogfeld zu aktualisieren, wie viel des Vorgangs abgeschlossen wurde. Das Statusdialogobjekt aktualisiert seine Statusanzeige und berechnet seine Schätzung der verbleibenden Zeit neu. Sie können ein beliebiges numerisches Fortschrittsmaß verwenden, das praktisch ist. Wenn Sie jedoch Werte verwenden möchten, die größer als 4 GB sind, müssen Sie IProgressDialog::SetProgress64 anstelle von IProgressDialog::SetProgress aufrufen.
  5. Ihre Anwendung erhält keine Benachrichtigung, wenn der Benutzer auf die Schaltfläche Abbrechen klickt, um den Vorgang abzubrechen. Rufen Sie im Verlauf des Vorgangs regelmäßig IProgressDialog::HasUserCancelled auf, um festzustellen, ob der Benutzer auf die Schaltfläche Abbrechen geklickt hat. Anwendungen rufen diese Methode in der Regel jedes Mal auf, wenn sie IProgressDialog::SetProgress oder IProgressDialog::SetProgress64 aufrufen.
  6. Das Dialogfeld zeigt drei Textzeilen an. Eine Anwendung kann IProgressDialog::SetLine regelmäßig aufrufen, um eine Nachricht in einer dieser Zeilen anzuzeigen. Diese Methode wird normalerweise verwendet, um Informationen zum aktuellen status des Vorgangs bereitzustellen. Eine typische Meldung ist etwa: "Aktuell verarbeitet Element XXX...". Nachrichten werden in der Regel in den Zeilen 1 und 2 angezeigt. Sie können Meldungen nur in Zeile 3 anzeigen, wenn Sie das Statusdialogobjekt nicht angewiesen haben, die verbleibende Zeit zu schätzen, indem Sie das PROGDLG_AUTOTIME-Flag im dwFlags-Parameter von IProgressDialog::StartProgressDialog festlegen. In diesem Fall wird die dritte Textzeile verwendet, um die geschätzte Zeit anzuzeigen.
Wenn der Vorgang abgeschlossen ist:
  1. Rufen Sie IProgressDialog::StopProgressDialog auf, um das Dialogfeld zu schließen.
  2. Lassen Sie das Statusdialogfeldobjekt los.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional, Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shlobj_core.h