Área de Transferência: copiando e colando dados
Este tópico descreve o trabalho mínimo necessário implementar à copiar e colar da área de transferência em seu aplicativo OLE. É recomendável que você leia os tópicos de Objetos de dados e fontes de dados (OLE) antes de continuar.
Antes de implementar a cópia ou cole, primeiro você deve fornecer funções para controlar as opções de impressão, de divisão, e da pasta no menu editar.
Recortar ou copiar dados
Para copiar dados para a área de transferência
Determine se os dados são copiados dados nativos ou um item é inserido ou vinculado.
Se os dados são inseridos ou vinculados, obtenha um ponteiro para o objeto de COleClientItem que foi selecionado.
Se os dados são nativos e o aplicativo é um servidor, crie um novo objeto derivado de COleServerItem que contém os dados selecionados. Se não, crie um objeto de COleDataSource para os dados.
Chame a função de membro de CopyToClipboard do item selecionado.
Se o usuário escolher uma operação de divisão em vez de uma operação de cópia, exclua os dados selecionados de seu aplicativo.
Para ver um exemplo dessa sequência, consulte as funções de OnEditCut e de OnEditCopy em programas de exemplo do OCLIENT e HIERSVRMFC. Observe que esses exemplos mantêm um ponteiro para os dados atualmente selecionados, de modo que a etapa 1 já está completo.
Colando dados
Colar dados é mais complicado da cópia como porque você precisa escolher o formato para usar em colar os dados em seu aplicativo.
Para colar dados da área de transferência
Em sua classe da exibição, implementar OnEditPaste para controlar os usuários que eles escolhem a opção de pasta do menu editar.
Na função de OnEditPaste , crie um objeto de COleDataObject e chamar sua função de membro de AttachClipboard para vincular este objeto para os dados na área de transferência.
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 o mais adequado ao seu aplicativo.
Execute a pasta de formato.
Para obter um exemplo de como isso funciona, consulte a implementação das funções de membro de OnEditPaste em classes de exibição definidas em programas de exemplo do OCLIENT e HIERSVRMFC.
Dica
O principal benefício de separar a operação de pasta em sua própria função é que o mesmo código da pasta pode ser usado quando os dados são removidos em seu aplicativo durante uma operação de arrastar e soltar.Como em OCLIENT e em HIERSVR, sua função de OnDrop também pode chamar DoPasteItem, reutilizando o código gravado nas operações de colagem de ferramentas.
Para controlar a opção especial da pasta no menu editar, consulte o tópico Caixas de diálogo no OLE.
Que você deseja saber mais?
Consulte também
Referência
Área de Transferência: usando o mecanismo Área de Transferência OLE