次の方法で共有


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

省略可能。 InkDisp オブジェクトの InkClipboardFormats 列挙値を指定します。 既定値は ICF_Default です。

[in, optional] ClipboardModes

省略可能。 InkDisp クラス オブジェクトの InkClipboardModes 列挙値を指定します。 既定値は ICB_Default です。

[out, retval] DataObject

このメソッドが戻るときに、 には、新しく作成されたデータ オブジェクトへのポインターが含まれます。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
正常終了しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INK_EXCEPTION
メソッド内で例外が発生しました。

解説

四角形のクリップがストロークすると、コピーしたデータでそれらのストロークがクリップされます。

InkDisp オブジェクトのプロパティのみをコピーする場合は、InkDisp オブジェクトをクリップボードにコピーすると便利な場合があります。 InkDisp オブジェクトをクリップボードにコピーするには、strokes パラメーターを NULL に設定して ClipboardCopy メソッドを呼び出します。

注意ICB_DelayedCopy フラグを使用した結果としてメモリ リークが発生する可能性を回避するには、OleFlushClipboard メソッドまたは OleSetClipboard メソッドを呼び出す必要があります。 ClipboardCopyWithRectangle メソッドの最後の呼び出しで ICB_DelayedCopy フラグが使用された場合、アプリケーションが終了する前にこれを行う必要があります。
 
ClipboardCopyWithRectangleをICB_Cut モードで使用すると、2 つ以上のストロークに分割されるストロークが削除され、新しいストロークがその場所に追加されます。

さらに、 InkAdded イベントと InkDeleted イベントは、ストロークのインデックスに基づいて生成されます。 たとえば、インデックス 0、1、3、5、6 のストロークを削除すると、2 つのイベントが生成されます。1 つはインデックス 0123 のストローク用、もう 1 つはインデックス 5 と 6 のストローク用です。 つまり、連続するセットごとに 1 つのイベントです。

これは InkAdded イベントにも適用されます。 内部アルゴリズムは、ストローク コレクションに新しく追加されたストロークのインデックスを決定します。これは、前述のように InkAdded イベントがどのように発生するかに影響します。

ストローク数がイベント ハンドラー内で照会される場合、結果は、イベントがまだ生成されていないストロークを含む、操作全体によって追加されたストロークの合計数になります。

要件

   
サポートされている最小のクライアント Windows XP タブレット PC エディション [デスクトップ アプリのみ]
サポートされている最小のサーバー サポートなし
対象プラットフォーム Windows
ヘッダー msinkaut.h
Library InkObj.dll

関連項目

ClipboardCopy メソッド

IInkDisp

InkClipboardFormats 列挙

InkClipboardModes 列挙

InkDisp クラス

InkStrokes コレクション