Interface IFileOperationProgressSink (shobjidl_core.h)
Expõe métodos que fornecem um sistema de notificação avançado usado pelos chamadores de IFileOperation para monitorar os detalhes das operações que estão executando por meio dessa interface.
Herança
A interface IFileOperationProgressSink herda da interface IUnknown . IFileOperationProgressSink também tem estes tipos de membros:
Métodos
A interface IFileOperationProgressSink tem esses métodos.
IFileOperationProgressSink::FinishOperations Executa ações implementadas pelo chamador após a conclusão da última operação executada pela chamada para IFileOperation. |
IFileOperationProgressSink::P auseTimer Não há suporte. (IFileOperationProgressSink.PauseTimer) |
IFileOperationProgressSink::P ostCopyItem Executa ações implementadas pelo chamador após a conclusão do processo de cópia para cada item. |
IFileOperationProgressSink::P ostDeleteItem Executa ações implementadas pelo chamador após a conclusão do processo de exclusão de cada item. |
IFileOperationProgressSink::P ostMoveItem Executa ações implementadas pelo chamador após a conclusão do processo de movimentação de cada item. |
IFileOperationProgressSink::P ostNewItem Executa ações implementadas pelo chamador depois que o novo item é criado. |
IFileOperationProgressSink::P ostRenameItem Executa ações implementadas pelo chamador após a conclusão do processo de renomeação de cada item. |
IFileOperationProgressSink::P reCopyItem Executa ações implementadas pelo chamador antes do início do processo de cópia para cada item. |
IFileOperationProgressSink::P reDeleteItem Executa ações implementadas pelo chamador antes do início do processo de exclusão de cada item. |
IFileOperationProgressSink::P reMoveItem Executa ações implementadas pelo chamador antes do início do processo de movimentação de cada item. |
IFileOperationProgressSink::P reNewItem Executa ações implementadas pelo chamador antes do início do processo para criar um novo item. |
IFileOperationProgressSink::P reRenameItem Executa ações implementadas pelo chamador antes do início do processo de renomeação para cada item. |
IFileOperationProgressSink::ResetTimer Não há suporte. (IFileOperationProgressSink.ResetTimer) |
IFileOperationProgressSink::ResumeTimer Não há suporte. (IFileOperationProgressSink.ResumeTimer) |
IFileOperationProgressSink::StartOperations Executa ações implementadas pelo chamador antes que qualquer operação de arquivo específica seja executada. |
IFileOperationProgressSink::UpdateProgress Fornece uma estimativa da quantidade total de trabalho atualmente feita em relação à quantidade total de trabalho. |
Comentários
Quando implementar
Os aplicativos devem implementar IFileOperationProgressSink por conta própria. O Windows não fornece uma implementação padrão.Quando usar
IFileOperationProgressSink são essencialmente manipuladores para eventos específicos. Normalmente, eles são usados para exibir informações sobre a ação específica que está sendo processada nesse momento, como o nome de um arquivo, origem e destino e o novo nome do item no destino. Os métodos Post recebem o HRESULT de cada parte da operação para que o chamador possa determinar especificamente onde o processo falhará se isso acontecer. Os valores de parâmetro do método IFileOperation são passados para os métodos IFileOperationProgressSink apropriados para que tenham acesso às mesmas informações.Para anexar uma implementação de IFileOperationProgressSink a uma chamada para IFileOperation, você tem duas opções:
- Para ser avisado de todas as operações executadas pela chamada para IFileOperation, use o método IFileOperation::Advise .
- Para ser notificado apenas sobre o progresso de operações específicas, passe IFileOperationProgressSink para um ou mais desses métodos IFileOperation individuais:
Se você optar por passar IFileOperationProgressSink apenas para selecionar métodos, a mesma instância de IFileOperationProgressSink poderá ser usada para todos eles.
Exemplo
O exemplo a seguir passa IFileOperationProgressSink para uma instância de IFileOperation chamando o método Advise .IFileOperation *pfo;
CoCreateInstance(CLSID_FileOperation, NULL, CLSCTX_ALL, IID_IFileOperation, (void **)&m_pFO)
HRESULT hr = SHCreateFileOperation(hwnd, 0, IID_PPV_ARGS(&pfo));
if (SUCCEEDED(hr))
{
// Advise to get notifications
DWORD dwCookie;
hr = pfo->Advise(SAFECAST(this, IFileOperationProgressSink*), &dwCookie);
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shobjidl_core.h (inclua Shobjidl.h) |