IInkDisp::ClipboardCopyWithRectangle 方法 (msinkaut.h)
将已知矩形中包含的 IInkStrokeDisp 对象复制到剪贴板。
语法
HRESULT ClipboardCopyWithRectangle(
[in] IInkRectangle *Rectangle,
[in, optional] InkClipboardFormats ClipboardFormats,
[in, optional] InkClipboardModes ClipboardModes,
[out, retval] IDataObject **DataObject
);
parameters
[in] Rectangle
指定包含要复制到剪贴板的笔划的矩形。
[in, optional] ClipboardFormats
可选。 指定 InkDisp 对象的 InkClipboardFormats 枚举值。 默认值为 ICF_Default。
[in, optional] ClipboardModes
可选。 指定 InkDisp 类对象的 InkClipboardModes 枚举值。 默认值为 ICB_Default。
[out, retval] DataObject
此方法返回时,包含指向新创建的数据对象的指针。
返回值
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
参数包含无效的指针。 |
|
方法内发生异常。 |
注解
如果矩形剪裁笔划,则会在复制的数据中剪裁这些笔画。
当您只想复制 InkDisp 对象的属性时,将 InkDisp 对象复制到剪贴板可能很有用。 若要将 InkDisp 对象复制到剪贴板,请调用将 strokes 参数设置为 NULL 的 ClipboardCopy 方法。
谨慎 若要避免因使用 ICB_DelayedCopy 标志而导致的潜在内存泄漏,必须调用 OleFlushClipboard 或 OleSetClipboard 方法。 如果对 ClipboardCopyWithRectangle 方法的最后一次调用使用了 ICB_DelayedCopy 标志,则必须在应用程序退出之前完成此操作。
此外, InkAdded 和 InkDeleted 事件是基于笔划的索引生成的。 例如,如果要删除索引 0、1、3、5 和 6 处的笔划,则将生成两个事件:一个用于索引为 0123 的笔划,一个用于索引为 5 和 6 的笔划。 也就是说,每个连续集都有一个事件。
这也适用于 InkAdded 事件。 内部算法确定笔划集合中新添加的笔划的索引,这会影响如上文所述 激发 InkAdded 事件的方式。
如果在事件处理程序中查询笔划计数,则结果是整个操作添加的笔划总数,包括尚未生成事件的笔划。
要求
最低受支持的客户端 | Windows XP Tablet PC Edition [仅限桌面应用] |
最低受支持的服务器 | 无受支持的版本 |
目标平台 | Windows |
标头 | msinkaut.h |
Library | InkObj.dll |