Metodo IInkDisp::ClipboardCopyWithRectangle (msinkaut.h)

Copia gli oggetti IInkStrokeDisp contenuti all'interno del rettangolo noto negli Appunti.

Sintassi

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

Parametri

[in] Rectangle

Specifica il rettangolo che contiene i tratti da copiare negli Appunti.

[in, optional] ClipboardFormats

Facoltativa. Specifica il valore di enumerazione InkClipboardFormats dell'oggetto InkDisp . Il valore predefinito è ICF_Default.

[in, optional] ClipboardModes

Facoltativa. Specifica il valore di enumerazione InkClipboardModes dell'oggetto Classe InkDisp . Il valore predefinito è ICB_Default.

[out, retval] DataObject

Quando termina, questo metodo contiene un puntatore all'oggetto dati appena creato.

Valore restituito

Questo metodo può restituire uno di questi valori.

Codice restituito Descrizione
S_OK
Operazione completata.
E_POINTER
Un parametro contiene un puntatore non valido.
E_INK_EXCEPTION
Si è verificata un'eccezione all'interno del metodo .

Commenti

Se i tratti del rettangolo vengono ritagliati, tali tratti vengono ritagliati nei dati copiati.

Può essere utile copiare un oggetto InkDisp negli Appunti quando si desidera copiare solo le proprietà dell'oggetto InkDisp . Per copiare un oggetto InkDisp negli Appunti, chiamare il metodo ClipboardCopy con il parametro strokes impostato su NULL.

Attenzione Per evitare potenziali perdite di memoria in seguito all'uso del flag di ICB_DelayedCopy , è necessario chiamare il metodo OleFlushClipboard o OleSetClipboard . Questa operazione deve essere eseguita prima dell'uscita dall'applicazione se l'ultima chiamata al metodo ClipboardCopyWithRectangle ha usato il flag ICB_DelayedCopy .
 
Quando ClipboardCopyWithRectangle viene usato in modalità ICB_Cut , viene eliminato un tratto che viene suddiviso in due o più tratti e i nuovi tratti vengono aggiunti al suo posto.

Inoltre, gli eventi InkAdded e InkDeleted vengono generati in base agli indici dei tratti. Ad esempio, se i tratti in corrispondenza degli indici 0,1,3,5 e 6 devono essere eliminati, verranno generati due eventi; uno per i tratti con indici 0123 e uno per i tratti con indici 5 e 6. Ovvero, un evento per ogni set contiguo.

Questo vale anche per gli eventi InkAdded . Un algoritmo interno determina gli indici dei tratti appena aggiunti nella raccolta di tratti e ciò ha un impatto sul modo in cui gli eventi InkAdded vengono generati come descritto in precedenza.

Se il conteggio dei tratti viene sottoposto a query all'interno del gestore eventi, il risultato è il numero totale di tratti aggiunti dall'intera operazione, inclusi i tratti che non hanno ancora generato eventi.

Requisiti

   
Client minimo supportato Windows XP Tablet PC Edition [solo app desktop]
Server minimo supportato Nessuno supportato
Piattaforma di destinazione Windows
Intestazione msinkaut.h
Libreria InkObj.dll

Vedi anche

ClipboardCopy, metodo

IInkDisp

Enumerazione InkClipboardFormats

Enumerazione InkClipboardModes

Classe InkDisp

Insieme InkStrokes