Treinamento
Módulo
Enviar e passar dados como saída do pipeline - Training
Este módulo explica como enviar dados de pipeline para arquivos e em vários formatos de saída.
Não há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Muitos aplicativos permitem que os usuários transfiram dados para outro aplicativo arrastando e soltando os dados com o mouse ou usando a Área de Transferência. Entre os muitos tipos de dados que podem ser transferidos estão objetos Shell, como arquivos ou pastas. A transferência de dados do Shell pode ocorrer entre dois aplicativos, mas os usuários também podem transferir dados do Shell de ou para a área de trabalho ou do Windows Explorer.
Embora os arquivos sejam o objeto Shell transferido com mais frequência, a transferência de dados do Shell pode envolver qualquer um dos diversos objetos encontrados no namespace shell. Por exemplo, seu aplicativo pode precisar transferir um arquivo para uma pasta virtual, como a Lixeira, ou aceitar um objeto de uma extensão de namespace que não seja da Microsoft. Se você estiver implementando uma extensão de namespace, ela deverá ser capaz de se comportar corretamente como uma origem de soltar e um destino.
Este documento discute como os aplicativos podem implementar transferências de dados de arrastar e soltar e área de transferência com objetos Shell.
Os aplicativos geralmente precisam fornecer aos usuários uma maneira de transferir dados do Shell. Alguns exemplos são:
Para obter uma discussão detalhada sobre como lidar com esses e outros cenários, consulte Manipulando cenários de transferência de dados do Shell. Este documento se concentra nos princípios gerais por trás da transferência de dados do Shell.
O Windows fornece duas maneiras padrão para aplicativos transferirem dados do Shell:
Em ambos os casos, os dados transferidos estão contidos em um objeto de dados. Objetos de dados são objetos COM (Component Object Model) que expõem a interface IDataObject . Esquematicamente, há três etapas essenciais que todas as transferências de dados do Shell devem seguir:
A diferença entre transferências de dados de arrastar e soltar e área de transferência está principalmente em como o ponteiro IDataObject é transferido da origem para o destino.
A Área de Transferência é a maneira mais simples de transferir dados do Shell. O procedimento básico é semelhante às transferências de dados padrão da Área de Transferência. No entanto, como você está transferindo um ponteiro para um objeto de dados, não os dados em si, você deve usar a API da área de transferência OLE em vez da API de área de transferência padrão. O procedimento a seguir descreve como usar a API da área de transferência OLE para transferir dados do Shell com a Área de Transferência:
Embora um pouco mais complexa de implementar, a transferência de dados de arrastar e soltar tem algumas vantagens significativas sobre a Área de Transferência:
As operações de arrastar e soltar também usam objetos de dados para transferir dados. No entanto, a fonte de descarte deve fornecer funcionalidade além da necessária para transferências da Área de Transferência:
Os destinos de remoção também devem fornecer mais funcionalidade do que o necessário para lidar com transferências da Área de Transferência:
Observação
Para operações de arrastar e soltar, seu aplicativo deve inicializar COM com OleInitialize, não CoInitialize.
O procedimento a seguir descreve as etapas essenciais que normalmente são usadas para transferir dados do Shell com arrastar e soltar:
Embora os procedimentos descritos acima forneçam um bom modelo geral para transferência de dados do Shell, há muitos tipos diferentes de dados que podem ser contidos em um objeto de dados shell. Também há vários cenários de transferência de dados diferentes que seu aplicativo pode precisar lidar. Cada tipo de dados e cenário requer uma abordagem um pouco diferente para três etapas principais no procedimento:
O Objeto de Dados do Shell fornece uma discussão geral sobre como uma fonte constrói um objeto de dados Shell e como esse objeto de dados pode ser tratado pelo destino. Lidar com cenários de transferência de dados do Shell discute detalhadamente como lidar com vários cenários comuns de transferência de dados do Shell.
Treinamento
Módulo
Enviar e passar dados como saída do pipeline - Training
Este módulo explica como enviar dados de pipeline para arquivos e em vários formatos de saída.