Partilhar via


Área de Transferência: copiando e colando dados

Este tópico descreve o trabalho mínimo necessário para implementar a cópia e a colagem da Área de Transferência no aplicativo OLE. É recomendável ler os tópicos sobre Objetos de Dados e Fontes de Dados (OLE) antes de prosseguir.

Antes de implementar a cópia ou a colagem, você precisa fornecer funções para manipular as opções Copiar, Recortar e Colar no menu Editar.

Copiando ou recortando dados

Para copiar dados para a Área de Transferência

  1. Determine se os dados a serem copiados são dados nativos ou se são um item inserido ou vinculado.

    • Se os dados estiverem inseridos ou vinculados, obtenha um ponteiro para o objeto COleClientItem selecionado.

    • Se os dados forem nativos e o aplicativo for um servidor, crie um objeto derivado do COleServerItem que contém os dados selecionados. Caso contrário, crie um objeto COleDataSource para os dados.

  2. Chame a função membro CopyToClipboard do item selecionado.

  3. Se o usuário escolher uma operação Recortar em vez de uma operação Copiar, exclua os dados selecionados do aplicativo.

Para ver um exemplo dessa sequência, consulte as funções OnEditCut e OnEditCopy nos programas de exemplo OLE OCLIENT e HIERSVR do MFC. Observe que esses exemplos mantêm um ponteiro para os dados selecionados no momento, portanto, a etapa 1 já está concluída.

Colando dados

Colar dados é mais complicado do que copiá-los porque você precisa escolher o formato a ser usado para colar os dados no aplicativo.

Para colar dados da Área de Transferência

  1. Em sua classe de exibição, implemente OnEditPaste para lidar com os usuários que escolhem a opção Colar no menu Editar.

  2. Na função OnEditPaste, crie um objeto COleDataObject e chame sua função membro AttachClipboard para vincular esse objeto aos dados na Área de Transferência.

  3. Chame COleDataObject::IsDataAvailable para verificar se um formato específico está disponível.

    Como alternativa, você pode usar COleDataObject::BeginEnumFormats para procurar outros formatos até encontrar um mais adequado para o aplicativo.

  4. Execute a colagem do formato.

Para obter um exemplo de como isso funciona, consulte a implementação das funções membro OnEditPaste nas classes de exibição definidas nos programas de exemplo OLE OCLIENT e HIERSVR do MFC.

Dica

O principal benefício de separar a operação de colagem em sua função é que o mesmo código de colagem pode ser usado quando dados são soltos em seu aplicativo durante uma operação de arrastar e soltar. Assim como em OCLIENT e HIERSVR, sua função OnDrop também pode chamar DoPasteItem, reutilizando o código escrito para implementar operações de colagem.

Para manipular a opção Colar Especial no menu Editar, consulte o tópico Caixas de diálogo no OLE.

O que mais você deseja saber?

Confira também

Área de transferência: usando o mecanismo de área de transferência do OLE