Condividi tramite


Interfaccia IProgressDialog (shlobj_core.h)

Espone i metodi che forniscono opzioni per un'applicazione per visualizzare una finestra di dialogo di stato. Questa interfaccia viene esportata dall'oggetto della finestra di dialogo stato (CLSID_ProgressDialog). Questo oggetto è un modo generico per mostrare a un utente come viene eseguita un'operazione. Viene in genere usato durante l'eliminazione, il caricamento, la copia, lo spostamento o il download di un numero elevato di file.

Ereditarietà

L'interfaccia IProgressDialog eredita dall'interfaccia IUnknown . IProgressDialog include anche questi tipi di membri:

Metodi

L'interfaccia IProgressDialog include questi metodi.

 
IProgressDialog::HasUserCancelled

Verifica se l'utente ha annullato l'operazione.
IProgressDialog::SetAnimation

Specifica un clip Audio-Video Interleaved (AVI) che viene eseguito nella finestra di dialogo.
IProgressDialog::SetCancelMsg

Imposta un messaggio da visualizzare se l'utente annulla l'operazione.
IProgressDialog::SetLine

Visualizza un messaggio nella finestra di dialogo di avanzamento.
IProgressDialog::SetProgress

Aggiornamenti finestra di dialogo di stato con lo stato corrente dell'operazione. (IProgressDialog.SetProgress)
IProgressDialog::SetProgress64

Aggiornamenti finestra di dialogo di stato con lo stato corrente dell'operazione. (IProgressDialog.SetProgress64)
IProgressDialog::SetTitle

Imposta il titolo della finestra di dialogo di avanzamento.
IProgressDialog::StartProgressDialog

Avvia la finestra di dialogo di avanzamento.
IProgressDialog::StopProgressDialog

Arresta la finestra di dialogo di avanzamento e la rimuove dalla schermata.
IProgressDialog::Timer

Reimposta il timer della finestra di dialogo di avanzamento su zero.

Commenti

L'oggetto della finestra di dialogo di stato crea una finestra di dialogo senza modalità e consente al client di impostare il titolo, l'animazione, le righe di testo e la barra di stato. L'oggetto gestisce quindi l'aggiornamento in un thread in background e consente all'utente di annullare l'operazione. Facoltativamente, stima il tempo rimanente fino al completamento dell'operazione e visualizza le informazioni come riga di testo.

Le applicazioni normalmente non implementano questa interfaccia. Viene esportato dall'oggetto della finestra di dialogo di stato per l'uso da parte delle applicazioni.

Usare questa interfaccia quando l'applicazione deve visualizzare una finestra di dialogo di stato. Per inizializzare l'oggetto:

  1. Creare un oggetto in-process progress (CLSID_ProgressDialog) con CoCreateInstance. Richiedere un puntatore all'interfaccia IProgressDialog (IID_IProgressDialog).
  2. Chiamare IProgressDialog::SetTitle per specificare il titolo della finestra di dialogo.
  3. Chiamare IProgressDialog::SetAnimation per specificare un clip AVI da riprodurre durante l'operazione.
  4. Chiamare IProgressDialog::SetCancelMsg per specificare il messaggio che verrà visualizzato se l'utente annulla l'operazione.
Per visualizzare lo stato di avanzamento dell'operazione:
  1. Chiamare IProgressDialog::StartProgressDialog per visualizzare la finestra di dialogo.
  2. Assegnare un valore numerico alla quantità totale di lavoro eseguita dall'operazione. Usare qualsiasi numero che consente di definire facilmente lo stato di avanzamento dell'operazione. Ad esempio, impostare questo valore su 100 se si vuole specificare lo stato di avanzamento dell'operazione in termini di percentuale completata.
  3. Chiamare IProgressDialog::Timer per reimpostare il timer. Questo metodo imposta il punto iniziale usato dall'oggetto finestra di dialogo di stato per stimare il tempo rimanente nell'operazione. Se non si chiama questo metodo, il punto iniziale sarà la chiamata a StartProgressDialog.
  4. Quando l'operazione viene eseguita, chiamare periodicamente IProgressDialog::SetProgress per aggiornare la finestra di dialogo in base alla quantità di completamento dell'operazione. L'oggetto finestra di dialogo di stato aggiornerà la barra di avanzamento e ricalcocherà la stima del tempo rimanente. È possibile usare qualsiasi misura numerica di avanzamento conveniente. Tuttavia, se si desidera usare valori superiori a 4 gigabyte (GB), è necessario chiamare IProgressDialog::SetProgress64 anziché IProgressDialog::SetProgressDialog::SetProgress.
  5. L'applicazione non riceve una notifica se l'utente fa clic sul pulsante Annulla per annullare l'operazione. Quando l'operazione viene eseguita, chiamare periodicamente IProgressDialog::HasUserCancelled per verificare se l'utente ha fatto clic sul pulsante Annulla . Le applicazioni chiamano in genere questo metodo ogni volta che chiamano IProgressDialog::SetProgress o IProgressDialog::SetProgress64.
  6. La finestra di dialogo visualizza tre righe di testo. Un'applicazione può chiamare periodicamente IProgressDialog::SetLine per visualizzare un messaggio in una di queste righe. Questo metodo viene in genere usato per fornire informazioni sullo stato corrente dell'operazione. Un messaggio tipico è simile al seguente: "Attualmente l'elaborazione dell'elemento XXX...". I messaggi vengono in genere visualizzati nelle righe 1 e 2. È possibile visualizzare i messaggi nella riga 3 solo se l'oggetto finestra di dialogo di stato non è stato indicato per stimare il tempo rimanente impostando il flag di PROGDLG_AUTOTIME nel parametro dwFlags di IProgressDialog::StartProgressDialog. In tal caso, la terza riga di testo viene usata per visualizzare l'ora stimata.
Al termine dell'operazione:
  1. Chiamare IProgressDialog::StopProgressDialog per chiudere la finestra di dialogo.
  2. Rilasciare l'oggetto della finestra di dialogo di avanzamento.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional, Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shlobj_core.h