Compartilhar via


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:

Se você chamar Advise , não será necessário passar IFileOperationProgressSink para métodosIFileOperation específicos, pois isso resultará em chamadas redundantes para os métodos IFileOperationProgressSink e notificações duplicadas.

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)

Confira também

Ifileoperation