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:
- 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).
- Chame IProgressDialog::SetTitle para especificar o título da caixa de diálogo.
- Chame IProgressDialog::SetAnimation para especificar um clipe AVI a ser reproduzido enquanto a operação progride.
- Chame IProgressDialog::SetCancelMsg para especificar a mensagem que será exibida se o usuário cancelar a operação.
- Chame IProgressDialog::StartProgressDialog para exibir a caixa de diálogo.
- 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.
- 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.
- À 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.
- 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.
- 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.
- Chame IProgressDialog::StopProgressDialog para fechar a caixa de diálogo.
- 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 |