Compartilhar via


Método IInkDisp::ClipboardCopyWithRectangle (msinkaut.h)

Copia os objetos IInkStrokeDisp contidos no retângulo conhecido para a Área de Transferência.

Sintaxe

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

Parâmetros

[in] Rectangle

Especifica o retângulo que contém os traços a serem copiados para a Área de Transferência.

[in, optional] ClipboardFormats

Opcional. Especifica o valor de enumeração InkClipboardFormats do objeto InkDisp . O valor padrão é ICF_Default.

[in, optional] ClipboardModes

Opcional. Especifica o valor de Enumeração InkClipboardModes do objeto Classe InkDisp . O valor padrão é ICB_Default.

[out, retval] DataObject

Quando esse método retorna, contém um ponteiro para o objeto de dados recém-criado.

Valor retornado

Esse método pode retornar um desses valores.

Código de retorno Descrição
S_OK
Êxito.
E_POINTER
Um parâmetro continha um ponteiro inválido.
E_INK_EXCEPTION
Ocorreu uma exceção dentro do método .

Comentários

Se o retângulo cortar traços, esses traços serão recortados nos dados copiados.

Pode ser útil copiar um objeto InkDisp para a Área de Transferência quando você só deseja copiar as propriedades do objeto InkDisp . Para copiar um objeto InkDisp para a Área de Transferência, chame o método ClipboardCopy com o parâmetro strokes definido como NULL.

Cuidado Para evitar possíveis vazamentos de memória como resultado do uso do sinalizador ICB_DelayedCopy , você deve chamar o método OleFlushClipboard ou OleSetClipboard . Isso deve ser feito antes que o aplicativo seja encerrado se a última chamada para o método ClipboardCopyWithRectangle tiver usado o sinalizador ICB_DelayedCopy .
 
Quando ClipboardCopyWithRectangle é usado no modo ICB_Cut , um traço que é dividido em dois ou mais traços é excluído e novos traços são adicionados em seu lugar.

Além disso, os eventos InkAdded e InkDeleted são gerados com base nos índices dos traços. Por exemplo, se os traços nos índices 0,1,3,5 e 6 forem excluídos, dois eventos serão gerados; um para traços com índices 0123 e outro para traços com índices 5 e 6. Ou seja, um evento para cada conjunto contíguo.

Isso também se aplica a eventos InkAdded . Um algoritmo interno determina os índices dos traços recém-adicionados na coleção de traços e isso tem um impacto sobre como os eventos InkAdded são disparados conforme descrito acima.

Se a contagem de traços for consultada dentro do manipulador de eventos, o resultado será o número total de traços adicionados por toda a operação, incluindo os traços que ainda não geraram eventos.

Requisitos

   
Cliente mínimo com suporte Windows XP Tablet PC Edition [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Nenhum compatível
Plataforma de Destino Windows
Cabeçalho msinkaut.h
Biblioteca InkObj.dll

Confira também

Método ClipboardCopy

Iinkdisp

Enumeração InkClipboardFormats

Enumeração InkClipboardModes

Classe InkDisp

Coleção InkStrokes