Share via


Interfaz IProgressDialog (shlobj_core.h)

Expone métodos que proporcionan opciones para que una aplicación muestre un cuadro de diálogo de progreso. Esta interfaz se exporta mediante el objeto del cuadro de diálogo de progreso (CLSID_ProgressDialog). Este objeto es una manera genérica de mostrar a un usuario cómo progresa una operación. Normalmente se usa al eliminar, cargar, copiar, mover o descargar un gran número de archivos.

Herencia

La interfaz IProgressDialog hereda de la interfaz IUnknown . IProgressDialog también tiene estos tipos de miembros:

Métodos

La interfaz IProgressDialog tiene estos métodos.

 
IProgressDialog::HasUserCancelled

Comprueba si el usuario ha cancelado la operación.
IProgressDialog::SetAnimation

Especifica un clip de Audio-Video intercalado (AVI) que se ejecuta en el cuadro de diálogo.
IProgressDialog::SetCancelMsg

Establece un mensaje que se mostrará si el usuario cancela la operación.
IProgressDialog::SetLine

Muestra un mensaje en el cuadro de diálogo de progreso.
IProgressDialog::SetProgress

Novedades el cuadro de diálogo de progreso con el estado actual de la operación. (IProgressDialog.SetProgress)
IProgressDialog::SetProgress64

Novedades el cuadro de diálogo de progreso con el estado actual de la operación. (IProgressDialog.SetProgress64)
IProgressDialog::SetTitle

Establece el título del cuadro de diálogo de progreso.
IProgressDialog::StartProgressDialog

Inicia el cuadro de diálogo de progreso.
IProgressDialog::StopProgressDialog

Detiene el cuadro de diálogo de progreso y lo quita de la pantalla.
IProgressDialog::Timer

Restablece el temporizador del cuadro de diálogo de progreso a cero.

Comentarios

El objeto de cuadro de diálogo de progreso crea un cuadro de diálogo modela y permite al cliente establecer su título, animación, líneas de texto y barra de progreso. A continuación, el objeto controla la actualización en un subproceso en segundo plano y permite al usuario cancelar la operación. Opcionalmente, calcula el tiempo restante hasta que se completa la operación y muestra la información como una línea de texto.

Las aplicaciones normalmente no implementan esta interfaz. Se exporta mediante el objeto de cuadro de diálogo de progreso para su uso por parte de las aplicaciones.

Use esta interfaz cuando la aplicación necesite mostrar un cuadro de diálogo de progreso. Para inicializar el objeto :

  1. Cree un objeto de cuadro de diálogo de progreso en proceso (CLSID_ProgressDialog) con CoCreateInstance. Solicite un puntero a su interfaz IProgressDialog (IID_IProgressDialog).
  2. Llame a IProgressDialog::SetTitle para especificar el título del cuadro de diálogo.
  3. Llame a IProgressDialog::SetAnimation para especificar un clip AVI que se reproducirá mientras avanza la operación.
  4. Llame a IProgressDialog::SetCancelMsg para especificar el mensaje que se mostrará si el usuario cancela la operación.
Para mostrar el progreso de la operación:
  1. Llame a IProgressDialog::StartProgressDialog para mostrar el cuadro de diálogo.
  2. Asigne un valor numérico a la cantidad total de trabajo que realizará la operación. Use cualquier número que le permita definir convenientemente el progreso de la operación. Por ejemplo, establezca este valor en 100 si desea especificar el progreso de la operación en términos del porcentaje que se ha completado.
  3. Llame a IProgressDialog::Timer para restablecer el temporizador. Este método establece el punto de partida que usa el objeto de diálogo de progreso para calcular el tiempo restante en la operación. Si no llama a este método, el punto inicial será la llamada a StartProgressDialog.
  4. A medida que avanza la operación, llame periódicamente a IProgressDialog::SetProgress para actualizar el cuadro de diálogo en cuanto a la cantidad de la operación completada. El objeto de diálogo de progreso actualizará su barra de progreso y volverá a calcular su estimación del tiempo restante. Puede usar cualquier medida numérica del progreso que sea conveniente. Sin embargo, si desea usar valores mayores de 4 gigabytes (GB), debe llamar a IProgressDialog::SetProgress64 en lugar de IProgressDialog::SetProgress.
  5. La aplicación no recibe una notificación si el usuario hace clic en el botón Cancelar para cancelar la operación. A medida que avanza la operación, llame periódicamente a IProgressDialog::HasUserCancelled para ver si el usuario ha realizado clic en el botón Cancelar . Las aplicaciones suelen llamar a este método cada vez que llaman a IProgressDialog::SetProgress o IProgressDialog::SetProgress64.
  6. El cuadro de diálogo muestra tres líneas de texto. Una aplicación puede llamar periódicamente a IProgressDialog::SetLine para mostrar un mensaje en una de estas líneas. Este método se usa normalmente para proporcionar información sobre el estado actual de la operación. Un mensaje típico es similar a: "Actualmente procesando el elemento XXX...". Los mensajes se muestran normalmente en las líneas 1 y 2. Solo puede mostrar mensajes en la línea 3 si no ha indicado al objeto de diálogo de progreso que calcule el tiempo restante estableciendo la marca PROGDLG_AUTOTIME en el parámetro dwFlags de IProgressDialog::StartProgressDialog. En ese caso, se usa la tercera línea de texto para mostrar el tiempo estimado.
Una vez completada la operación:
  1. Llame a IProgressDialog::StopProgressDialog para cerrar el cuadro de diálogo.
  2. Libere el objeto del cuadro de diálogo de progreso.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlobj_core.h