Presse-papiers : À l'aide de le mécanisme de presse-papiers OLE
OLE utilise des formats standard et certains formats d'OLE-détail pour transférer des données via le presse-papiers.
Lorsque vous coupez ou les données de copie d'une application, les données sont stockées dans le presse-papiers à utiliser ultérieurement dans les opérations de copier-coller.Ces données sont dans divers formats.Lorsqu'un utilisateur choisit de coller les données du presse-papiers, l'application peut choisir lequel de ces formats à utiliser.L'application doit être écrite pour choisir le format qui fournit plus d'informations, sauf si l'utilisateur demande spécifiquement un certain format, à l'aide de l'special de collage.Avant de continuer, vous pouvez souhaiter lire les rubriques d' objets de données et sources de données (OLE) .Ils décrivent les notions de base de la façon dont les transferts de données s'exécutent, et explique comment les implémenter dans vos applications.
Les fenêtres définit plusieurs formats standard qui peuvent être utilisés pour transférer des données via le presse-papiers.Celles-ci incluent les métafichiers, du texte, des bitmaps, et.OLE définit plusieurs formats d'OLE-détail, également.Pour les applications qui ont besoin de davantage de détails que donné par ces formats standard, il est conseillé d'enregistrer leurs propres formats de presse-papiers personnalisés.Utilisez la fonction RegisterClipboardFormat l'API Win32 pour ce faire.
Par exemple, Microsoft Excel enregistre un format personnalisé pour les feuilles de calcul.Ce format est beaucoup plus d'informations que, par exemple, une bitmap fait.Lorsque ces données sont collées dans une application qui prend en charge le format feuille de calcul, toutes les formules et valeurs de la feuille de calcul sont conservées et peuvent être mises à jour si nécessaire.Microsoft Excel met également des données dans le presse-papiers dans les formats afin qu'il puisse être collé comme élément OLE.Tout OLE conteneur de documents peut coller ces informations dans un élément incorporé.Cet élément incorporé peut être modifié à l'aide de Microsoft Excel.Le presse-papiers contient également une bitmap simple de l'image de la plage sélectionnée dans la feuille de calcul.Cela peut également être collé dans OLE de conteneurs de document ou dans les éditeurs de bitmaps, comme la peinture.Dans le cas d'une bitmap, cependant, il n'y a aucun moyen de manipuler les données sous forme de feuille de calcul.
Pour récupérer la quantité maximale des informations du presse-papiers, les applications doivent vérifier ces formats personnalisés avant de coller les données du presse-papiers.
Par exemple, pour vérifier la commande couper, vous pouvez écrire un gestionnaire semblable à la suivante :
void CMyListView::OnEditCut()
{
// Create an OLE data source on the heap
COleDataSource* pData = new COleDataSource;
// Get the currently selected data
HGLOBAL hGlob = GlobalAlloc(GMEM_FIXED, 64);
strcpy_s((char*)hGlob, 64, "Current selection\r\n");
// For the appropriate data formats...
pData->CacheGlobalData( CF_TEXT, hGlob );
// The Clipboard now owns the allocated memory
// and will delete this data object
// when new data is put on the Clipboard
pData->SetClipboard();
}