Interface IProgressDialog (shlobj_core.h)

Expõe métodos que fornecem opções para um aplicativo exibir uma caixa de diálogo de progresso. Essa interface é exportada pelo objeto da caixa de diálogo de progresso (CLSID_ProgressDialog). Esse objeto é uma maneira genérica de mostrar a um usuário como uma operação está progredindo. Normalmente, ele é usado ao excluir, carregar, copiar, mover ou baixar um grande número de arquivos.

Herança

A interface IProgressDialog herda da interface IUnknown . O IProgressDialog também tem esses tipos de membros:

Métodos

A interface IProgressDialog tem esses métodos.

 
IProgressDialog::HasUserCancelled

Verifica se o usuário cancelou a operação.
IProgressDialog::SetAnimation

Especifica um clipe do AVI (Intercalado Audio-Video) que é executado na caixa de diálogo.
IProgressDialog::SetCancelMsg

Define uma mensagem a ser exibida se o usuário cancelar a operação.
IProgressDialog::SetLine

Exibe uma mensagem na caixa de diálogo em andamento.
IProgressDialog::SetProgress

Atualizações a caixa de diálogo de progresso com o estado atual da operação. (IProgressDialog.SetProgress)
IProgressDialog::SetProgress64

Atualizações a caixa de diálogo de progresso com o estado atual da operação. (IProgressDialog.SetProgress64)
IProgressDialog::SetTitle

Define o título da caixa de diálogo de progresso.
IProgressDialog::StartProgressDialog

Inicia a caixa de diálogo de progresso.
IProgressDialog::StopProgressDialog

Interrompe a caixa de diálogo de progresso e a remove da tela.
IProgressDialog::Timer

Redefine o temporizador da caixa de diálogo de progresso como zero.

Comentários

O objeto da caixa de diálogo de progresso cria uma caixa de diálogo modeless e permite que o cliente defina seu título, animação, linhas de texto e barra de progresso. Em seguida, o objeto manipula a atualização em um thread em segundo plano e permite que o usuário cancele a operação. Opcionalmente, ele estima o tempo restante até que a operação seja concluída e exibe as informações como uma linha de texto.

Os aplicativos normalmente não implementam essa interface. Ele é exportado pelo objeto da caixa de diálogo de progresso para uso por aplicativos.

Use essa interface quando o aplicativo precisar exibir uma caixa de diálogo de progresso. Para inicializar o objeto:

  1. Crie um objeto de caixa de diálogo de progresso no processo (CLSID_ProgressDialog) com CoCreateInstance. Solicite um ponteiro para sua interface IProgressDialog (IID_IProgressDialog).
  2. Chame IProgressDialog::SetTitle para especificar o título da caixa de diálogo.
  3. Chame IProgressDialog::SetAnimation para especificar um clipe AVI a ser reproduzido enquanto a operação progride.
  4. Chame IProgressDialog::SetCancelMsg para especificar a mensagem que será exibida se o usuário cancelar a operação.
Para exibir o progresso da operação:
  1. Chame IProgressDialog::StartProgressDialog para exibir a caixa de diálogo.
  2. Atribua um valor numérico à quantidade total de trabalho que a operação executará. Use qualquer número que permita definir convenientemente o progresso da operação. Por exemplo, defina esse valor como 100 se você quiser especificar o progresso da operação em termos da porcentagem que foi concluída.
  3. Chame IProgressDialog::Timer para redefinir o temporizador. Esse método define o ponto de partida que o objeto de diálogo de progresso usa para estimar o tempo restante na operação. Se você não chamar esse método, o ponto de partida será a chamada para StartProgressDialog.
  4. À medida que a operação progride, chame periodicamente IProgressDialog::SetProgress para atualizar a caixa de diálogo quanto à quantidade da operação foi concluída. O objeto de diálogo de progresso atualizará sua barra de progresso e recalculará sua estimativa do tempo restante. Você pode usar qualquer medida numérica de progresso conveniente. No entanto, se você quiser usar valores maiores que 4 gigabytes (GB), deverá chamar IProgressDialog::SetProgress64 em vez de IProgressDialog::SetProgress.
  5. Seu aplicativo não receberá uma notificação se o usuário clicar no botão Cancelar para cancelar a operação. À medida que a operação progride, chame periodicamente IProgressDialog::HasUserCancelled para ver se o usuário clicou no botão Cancelar . Os aplicativos normalmente chamam esse método sempre que chamam IProgressDialog::SetProgress ou IProgressDialog::SetProgress64.
  6. A caixa de diálogo exibe três linhas de texto. Um aplicativo pode chamar periodicamente IProgressDialog::SetLine para exibir uma mensagem em uma dessas linhas. Normalmente, esse método é usado para fornecer informações sobre o status atual da operação. Uma mensagem típica é algo como: "Atualmente processando o item XXX...". Normalmente, as mensagens são exibidas nas linhas 1 e 2. Você só poderá exibir mensagens na linha 3 se não tiver instruído o objeto de diálogo de progresso a estimar o tempo restante definindo o sinalizador PROGDLG_AUTOTIME no parâmetro dwFlags de IProgressDialog::StartProgressDialog. Nesse caso, a terceira linha de texto é usada para exibir o tempo estimado.
Quando a operação for concluída:
  1. Chame IProgressDialog::StopProgressDialog para fechar a caixa de diálogo.
  2. Solte o objeto da caixa de diálogo de progresso.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shlobj_core.h