Поделиться через


Метод IInkDisp::ClipboardCopyWithRectangle (msinkaut.h)

Копирует объекты IInkStrokeDisp , содержащиеся в известном прямоугольнике, в буфер обмена.

Синтаксис

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

Параметры

[in] Rectangle

Задает прямоугольник, содержащий штрихи для копирования в буфер обмена.

[in, optional] ClipboardFormats

Необязательный элемент. Задает значение перечисления InkClipboardFormats объекта InkDisp . Значение по умолчанию — ICF_Default.

[in, optional] ClipboardModes

Необязательный элемент. Задает значение перечисления InkClipboardModes объекта Класса InkDisp . Значение по умолчанию — ICB_Default.

[out, retval] DataObject

При возврате этим методом содержит указатель на вновь созданный объект данных.

Возвращаемое значение

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
E_POINTER
Параметр содержит недопустимый указатель.
E_INK_EXCEPTION
В методе произошло исключение.

Комментарии

Если прямоугольник обрезает штрихи, эти штрихи обрезаются в скопированных данных.

Может быть полезно скопировать объект InkDisp в буфер обмена, если требуется скопировать только свойства объекта InkDisp . Чтобы скопировать объект InkDisp в буфер обмена, вызовите метод ClipboardCopy с параметром strokes , имеющим значение NULL.

Осторожностью Чтобы избежать потенциальных утечек памяти в результате использования флага ICB_DelayedCopy , необходимо вызвать метод OleFlushClipboard или OleSetClipboard . Это необходимо сделать до завершения работы приложения, если в последнем вызове метода ClipboardCopyWithRectangle использовался флаг ICB_DelayedCopy .
 
Если clipboardCopyWithRectangle используется в режиме ICB_Cut , то штрих, разделенный на два или более штрихов, удаляется и на его место добавляются новые штрихи.

Кроме того, события InkAdded и InkDeleted создаются на основе индексов штрихов. Например, если штрихи в индексах 0,1,3,5 и 6 должны быть удалены, будут созданы два события; один для штрихов с индексами 0123 и один для штрихов с индексами 5 и 6. То есть по одному событию для каждого непрерывного набора.

Это также относится к событиям InkAdded . Внутренний алгоритм определяет индексы добавленных штрихов в коллекции штрихов, и это влияет на то, как запускаются события InkAdded, как описано выше.

Если число штрихов запрашивается в обработчике событий, результатом будет общее количество росчерков, добавленных всей операцией, включая штрихи, которые еще не создали события.

Требования

   
Минимальная версия клиента Windows XP Tablet PC Edition [только классические приложения]
Минимальная версия сервера Ни одна версия не поддерживается
Целевая платформа Windows
Header msinkaut.h
Библиотека InkObj.dll

См. также раздел

Метод ClipboardCopy

IInkDisp

Перечисление InkClipboardFormats

Перечисление InkClipboardModes

Класс InkDisp

Коллекция InkStrokes