Interface IFileOperation (shobjidl_core.h)
Expõe métodos para copiar, mover, renomear, criar e excluir itens do Shell, bem como métodos para fornecer diálogos de progresso e erro. Essa interface substitui a função SHFileOperation .
Herança
A interface IFileOperation herda da interface IUnknown . IFileOperation também tem estes tipos de membros:
Métodos
A interface IFileOperation tem esses métodos.
IFileOperation::Advise Permite que um manipulador forneça status e informações de erro para todas as operações. |
IFileOperation::ApplyPropertiesToItem Declara um único item cujos valores de propriedade devem ser definidos. |
IFileOperation::ApplyPropertiesToItems Declara um conjunto de itens para os quais aplicar um conjunto comum de valores de propriedade. |
IFileOperation::CopyItem Declara um único item que deve ser copiado para um destino especificado. |
IFileOperation::CopyItems Declara um conjunto de itens que devem ser copiados para um destino especificado. |
IFileOperation::D eleteItem Declara um único item que deve ser excluído. |
IFileOperation::D eleteItems Declara um conjunto de itens que devem ser excluídos. |
IFileOperation::GetAnyOperationsAborted Obtém um valor que indica se todas as operações de arquivo iniciadas por uma chamada para IFileOperation::P erformOperations foram interrompidas antes de serem concluídas. As operações podem ser interrompidas pela ação do usuário ou silenciosamente pelo sistema. |
IFileOperation::MoveItem Declara um único item que deve ser movido para um destino especificado. |
IFileOperation::MoveItems Declara um conjunto de itens que devem ser movidos para um destino especificado. |
IFileOperation::NewItem Declara um novo item que deve ser criado em um local especificado. |
IFileOperation::P erformOperations Executa todas as operações selecionadas. |
IFileOperation::RenameItem Declara um único item que deve receber um novo nome de exibição. |
IFileOperation::RenameItems Declara um conjunto de itens que devem receber um novo nome de exibição. Todos os itens recebem o mesmo nome. |
IFileOperation::SetOperationFlags Define parâmetros para a operação atual. |
IFileOperation::SetOwnerWindow Define a janela pai ou proprietário para o progresso e as janelas de diálogo. |
IFileOperation::SetProgressDialog Especifica uma caixa de diálogo usada para exibir o progresso da operação. |
IFileOperation::SetProgressMessage Não implementado. (IFileOperation.SetProgressMessage) |
IFileOperation::SetProperties Declara um conjunto de propriedades e valores a serem definidos em um item ou itens. |
IFileOperation::Unadvise Encerra uma conexão de consultoria estabelecida anteriormente por meio de IFileOperation::Advise. |
Comentários
Um item shell pode ser qualquer objeto no namespace, incluindo objetos do sistema de arquivos, como arquivos e pastas, mas também objetos virtuais. Nos tópicos do método IFileOperation , o termo "item" é usado para se referir genericamente a qualquer objeto de namespace.
IFileOperation oferece muitas vantagens em relação à função SHFileOperation mais antiga.
- Uso de IShellItem para identificar itens em vez de caminhos de cadeia de caracteres. SHFileOperation exigiu que o caminho e as cadeias de caracteres de destino terminassem em dois caracteres nulos em vez do caractere nulo único padrão, que foi usado para delimitar vários caminhos na cadeia de caracteres. Identificar um item por meio de IShellItem é mais robusto e menos propenso a erros de programação. Ele também permite que você acesse itens do sistema que não são de arquivos, como pastas virtuais. Vários itens em uma operação podem ser passados como um IShellItemArray, IDataObject ou uma coleção acessada por meio de IEnumShellItems em vez de como uma cadeia de caracteres.
- Relatórios de erros mais precisos por meio de valores HRESULT em conjunto com uma API como FormatMessage. Códigos de retorno de SHFileOperation podem ser enganosos ou imprecisos.
- Extensibilidade. Como uma interface COM (Component Object Model), iFileOperation pode ter seus recursos estendidos por terceiros para atender às suas necessidades específicas, embora esse deva ser um caso muito raro. O Windows fornece uma implementação padrão de IFileOperation que deve atender às necessidades da maioria dos usuários.
- Melhores comentários de progresso. O progresso detalhado da operação, incluindo notificações quando operações específicas começam e terminam em itens individuais, bem como o progresso geral, pode ser recebido durante a operação. Embora SHFileOperation tenha fornecido a interface do usuário de progresso, ela não foi tão detalhada.
- Mais funcionalidade. Além da funcionalidade de copiar, excluir, mover e renomear fornecida por SHFileOperation, iFileOperation permite aplicar valores de propriedade e criar novos itens.
- Mais controle sobre a operação. Além dos sinalizadores de operação reconhecidos por SHFileOperation, novos sinalizadores são reconhecidos em IFileOperation::SetOperationFlags que especificam opções de operação estendidas.
- Operações diferentes podem ser executadas em uma chamada. Por exemplo, você pode mover um conjunto de arquivos, copiar outros, renomear uma pasta e aplicar propriedades a outro item em uma única operação. SHFileOperation só poderia executar uma operação — copiar, mover, renomear ou excluir — por vez.
- Opcional. Configure o coletor de eventos para status de progresso e notificações de erro por meio de Aviso e Não Aviso.
- Defina o estado da operação usando o seguinte, conforme necessário:
- Especifique quais operações executar em quais itens usar o seguinte, conforme necessário.
- Executar as operações chamando PerformOperations
Um exemplo completo que demonstra a extensão de IFileOperation está incluído no SDK (Software Development Kit do Windows (SDK do Windows)). Em uma instalação padrão, ele pode ser encontrado em %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\FileOperations.
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) |