Partager via


Presse-papiers : copier-coller des données

Cette rubrique décrit le travail minimal nécessaire pour implémenter la copie vers et le collage à partir du Presse-papiers dans votre application OLE. Il est recommandé de lire les rubriques Objets de données et Sources de données (OLE) avant de continuer.

Avant de pouvoir implémenter la copie ou le collage, vous devez d’abord fournir des fonctions pour gérer les options Copier, Couper et Coller dans le menu Modifier.

Copie ou coupe de données

Pour copier des données dans le Presse-papiers

  1. Déterminez si les données à copier sont des données natives ou un élément incorporé ou lié.

    • Si les données sont incorporées ou liées, obtenez un pointeur vers l’objet COleClientItem sélectionné.

    • Si les données sont natives et que l’application est un serveur, créez un objet dérivé de COleServerItem contenant les données sélectionnées. Sinon, créez un COleDataSource objet pour les données.

  2. Appelez la fonction membre de l’élément CopyToClipboard sélectionné.

  3. Si l’utilisateur a choisi une opération Couper au lieu d’une opération de copie, supprimez les données sélectionnées de votre application.

Pour voir un exemple de cette séquence, consultez les fonctions et les OnEditCut fonctions dans les exemples de programmes OLE MFC OCLIENT et HIERSVR.OnEditCopy Notez que ces exemples conservent un pointeur vers les données actuellement sélectionnées. L’étape 1 est donc déjà terminée.

Collage de données

Le collage de données est plus compliqué que de le copier, car vous devez choisir le format à utiliser pour coller les données dans votre application.

Pour coller des données à partir du Presse-papiers

  1. Dans votre classe d’affichage, implémentez OnEditPaste pour gérer les utilisateurs qui choisissent l’option Coller dans le menu Modifier.

  2. Dans la OnEditPaste fonction, créez un COleDataObject objet et appelez sa AttachClipboard fonction membre pour lier cet objet aux données du Presse-papiers.

  3. Appelez COleDataObject::IsDataAvailable à case activée si un format particulier est disponible.

    Vous pouvez également utiliser COleDataObject::BeginEnumFormats pour rechercher d’autres formats jusqu’à ce que vous trouviez celui qui convient le mieux à votre application.

  4. Effectuez le collage du format.

Pour obtenir un exemple de fonctionnement, consultez l’implémentation des OnEditPaste fonctions membres dans les classes d’affichage définies dans les exemples de programmes OLE MFC OCLIENT et HIERSVR.

Conseil

L’avantage principal de séparer l’opération de collage en sa propre fonction est que le même code de collage peut être utilisé lorsque les données sont supprimées dans votre application pendant une opération de glisser-déplacer. Comme dans OCLIENT et HIERSVR, votre OnDrop fonction peut également appeler DoPasteItem, réutilisant le code écrit pour implémenter des opérations de collage.

Pour gérer l’option Coller spécial dans le menu Modifier, consultez les boîtes de dialogue de rubrique dans OLE.

Que voulez-vous en savoir plus sur

Voir aussi

Presse-papiers : utilisation du mécanisme de Presse-papiers OLE