Partager via


IInkDisp::Presse-papiersCopyWithRectangle, méthode (msinkaut.h)

Copie les objets IInkStrokeDisp contenus dans le rectangle connu dans le Presse-papiers.

Syntaxe

HRESULT ClipboardCopyWithRectangle(
  [in]           IInkRectangle       *Rectangle,
  [in, optional] InkClipboardFormats ClipboardFormats,
  [in, optional] InkClipboardModes   ClipboardModes,
  [out, retval]  IDataObject         **DataObject
);

Paramètres

[in] Rectangle

Spécifie le rectangle qui contient les traits à copier dans le Presse-papiers.

[in, optional] ClipboardFormats

Optionnel. Spécifie la valeur d’énumération InkClipboardFormats de l’objet InkDisp . La valeur par défaut est ICF_Default.

[in, optional] ClipboardModes

Optionnel. Spécifie la valeur d’énumération InkClipboardModes de l’objet classe InkDisp . La valeur par défaut est ICB_Default.

[out, retval] DataObject

Lorsque cette méthode retourne, contient un pointeur vers l’objet de données nouvellement créé.

Valeur retournée

Cette méthode peut retourner l’une de ces valeurs.

Code de retour Description
S_OK
Réussite.
E_POINTER
Un paramètre contenait un pointeur non valide.
E_INK_EXCEPTION
Une exception s’est produite à l’intérieur de la méthode.

Notes

Si le rectangle clipse des traits, ces traits sont clippés dans les données copiées.

Il peut être utile de copier un objet InkDisp dans le Presse-papiers lorsque vous souhaitez uniquement copier les propriétés de l’objet InkDisp . Pour copier un objet InkDisp dans le Presse-papiers, appelez la méthode Presse-papiersCopy avec le paramètre traits défini sur NULL.

Attention Pour éviter les fuites de mémoire potentielles résultant de l’utilisation de l’indicateur ICB_DelayedCopy , vous devez appeler la méthode OleFlushClipboard ou OleSetClipboard . Cette opération doit être effectuée avant la fin de l’application si le dernier appel à la méthode ClipboardCopyWithRectangle a utilisé l’indicateur ICB_DelayedCopy .
 
Lorsque le Presse-papiersCopyWithRectangle est utilisé en mode ICB_Cut , un trait divisé en deux traits ou plus est supprimé et de nouveaux traits sont ajoutés à sa place.

En outre, les événements InkAdded et InkDeleted sont générés en fonction des index des traits. Par exemple, si les traits des index 0,1,3,5 et 6 doivent être supprimés, deux événements seront générés ; un pour les traits avec les index 0123 et l’autre pour les traits avec les index 5 et 6. Autrement dit, un événement pour chaque ensemble contigu.

Cela s’applique également aux événements InkAdded . Un algorithme interne détermine les index des traits récemment ajoutés dans la collection de traits, ce qui a un impact sur la façon dont les événements InkAdded sont déclenchés comme décrit ci-dessus.

Si le nombre de traits est interrogé dans le gestionnaire d’événements, le résultat est le nombre total de traits ajoutés par l’ensemble de l’opération, y compris les traits qui n’ont pas encore généré d’événements.

Spécifications

   
Client minimal pris en charge Windows XP Édition Tablet PC [applications de bureau uniquement]
Serveur minimal pris en charge Aucun pris en charge
Plateforme cible Windows
En-tête msinkaut.h
Bibliothèque InkObj.dll

Voir aussi

Presse-papiersCopy, méthode

IInkDisp

InkClipboardFormats, énumération

InkClipboardModes, énumération

Classe InkDisp

InkStrokes Collection