Win32 API 日本語リファレンス
ホームUI.TabletPC › IInkCollector

IInkCollector

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDf0f060b5-8b1f-4a7c-89ec-880692588a4f継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

。 (IInkCollector)

解説(Remarks)

透明なコントロール (WS_EX_TRANSPARENT プロパティが設定された GroupBox など) の背後に InkCollector コントロールを作成すると、InkCollector はインクを収集できなくなります。

メソッド 40

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_hWnd(INT_PTR* CurrentWindow)

インクが描画されるウィンドウのハンドル値を取得または設定します。(IInkCollector.get_hWnd)

CurrentWindowINT_PTR*outインクを収集している現在のウィンドウ ハンドルを受け取るポインタである。

解説(Remarks)

ウィンドウが 2 つ以上存在する場合、このプロパティによってどのウィンドウがインクを収集するかを指定できます。

メモ このプロパティを設定する前に、InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にする必要があります。InkCollector または InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。その後 hWnd プロパティを設定し、Enabled プロパティを TRUE に設定してオブジェクトを再度有効にできます。
オートメーションでは、このプロパティは hWnd Property と呼ばれます。
vtbl 8 HRESULT put_hWnd(INT_PTR NewWindow)

インクが描画されるウィンドウのハンドル値を取得または設定します。(IInkCollector.put_hWnd)

NewWindowINT_PTRinインク収集の対象とするウィンドウ ハンドルを指定する。

解説(Remarks)

ウィンドウが 2 つ以上存在する場合、このプロパティによってどのウィンドウがインクを収集するかを指定できます。

メモ このプロパティを設定する前に、InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にする必要があります。InkCollector または InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。その後 hWnd プロパティを設定し、Enabled プロパティを TRUE に設定してオブジェクトを再度有効にできます。
オートメーションでは、このプロパティは hWnd Property と呼ばれます。
vtbl 9 HRESULT get_Enabled(VARIANT_BOOL* Collecting)

InkCollector オブジェクトがペン入力 (空中でのパケット、カーソルの範囲内イベントなど) を収集するかどうかを指定する値を取得または設定します。(Get)

CollectingVARIANT_BOOL*outインク コレクタが有効(収集可能)かどうかを受け取る VARIANT_BOOL へのポインタである。

解説(Remarks)

有効なオブジェクトのウィンドウ入力矩形 (コンストラクター、または SetWindowInputRectangle メソッドで設定します) が、別の有効なオブジェクトのウィンドウ入力矩形と重なる場合、E_INK_OVERLAPPING_INPUT_RECT エラーが返されます。任意の時点で有効になっている入力矩形が 1 つだけであれば、重なっていてもエラーにはなりません。

オブジェクトが有効でない間は、イベントを受け取りません。

コンテナー コントロールの Enabled プロパティが FALSE に設定されている場合、そのコンテナーに含まれるすべてのコントロールも無効になります。

オブジェクトがインクを収集している間 (CollectingInk プロパティが TRUE の間) は、Enabled プロパティを FALSE に設定できません。

アプリケーションの終了時には、EnabledFALSE に設定することをお勧めします。

メモ 特定のメッセージ ハンドラー内でこのプロパティを設定すると、内部の関数が再入され、予期しない結果を招くことがあります。次のメッセージを処理する際は、再入呼び出しが発生しないように注意してください。WM_ACTIVATEWM_ACTIVATEAPPWM_NCACTIVATEWM_PAINTwParamSC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt-Tab または Alt-Esc のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。
オブジェクトの特定のプロパティやメソッドを設定または呼び出す前に、このプロパティを FALSE に設定する必要があります。該当するプロパティやメソッドを変更しようとすると、エラーが発生します。Enabled プロパティを先に FALSE に設定しない限り、次のプロパティおよびメソッドは設定または呼び出しができません。

プロパティ

メソッド
vtbl 10 HRESULT put_Enabled(VARIANT_BOOL Collecting)

InkCollector オブジェクトがペン入力 (空中でのパケット、カーソルの範囲内イベントなど) を収集するかどうかを指定する値を取得または設定します。(Put)

CollectingVARIANT_BOOLinインク コレクタを有効にするかどうかを指定する VARIANT_BOOL である。

解説(Remarks)

有効なオブジェクトのウィンドウ入力矩形 (コンストラクター、または SetWindowInputRectangle メソッドで設定します) が、別の有効なオブジェクトのウィンドウ入力矩形と重なる場合、E_INK_OVERLAPPING_INPUT_RECT エラーが返されます。任意の時点で有効になっている入力矩形が 1 つだけであれば、重なっていてもエラーにはなりません。

オブジェクトが有効でない間は、イベントを受け取りません。

コンテナー コントロールの Enabled プロパティが FALSE に設定されている場合、そのコンテナーに含まれるすべてのコントロールも無効になります。

オブジェクトがインクを収集している間 (CollectingInk プロパティが TRUE の間) は、Enabled プロパティを FALSE に設定できません。

アプリケーションの終了時には、EnabledFALSE に設定することをお勧めします。

メモ 特定のメッセージ ハンドラー内でこのプロパティを設定すると、内部の関数が再入され、予期しない結果を招くことがあります。次のメッセージを処理する際は、再入呼び出しが発生しないように注意してください。WM_ACTIVATEWM_ACTIVATEAPPWM_NCACTIVATEWM_PAINTwParamSC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt-Tab または Alt-Esc のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。
オブジェクトの特定のプロパティやメソッドを設定または呼び出す前に、このプロパティを FALSE に設定する必要があります。該当するプロパティやメソッドを変更しようとすると、エラーが発生します。Enabled プロパティを先に FALSE に設定しない限り、次のプロパティおよびメソッドは設定または呼び出しができません。

プロパティ

メソッド
vtbl 11 HRESULT get_DefaultDrawingAttributes(IInkDrawingAttributes** CurrentAttributes)

インクの描画および表示時に使用する既定の描画属性を取得または設定します。(IInkCollector.get_DefaultDrawingAttributes)

CurrentAttributesIInkDrawingAttributes**out新しいストロークに適用される既定の描画属性を受け取るポインタである。

解説(Remarks)

このプロパティで指定した描画属性は、新しいカーソルに割り当てられる属性です。

既定の描画属性は次のとおりです。

AntiAliased = TRUE

Color = BLACK (RGB(0,0,0))。ハイ コントラスト モードでない場合。それ以外の場合は Color=COLOR_WINDOWTEXT

FitToCurve = FALSE

Height = 1 (インク空間単位)

IgnorePressure = FALSE

PenTip = Ball

RasterOperation = CopyPen

Transparency = 0 (完全に不透明)

Width = 53 (インク空間単位)

新しいカーソルに別の属性を設定するには、IInkCursor オブジェクトの DrawingAttributes プロパティを使用します。

単一のストロークの描画属性を変更するには、IInkStrokeDisp オブジェクトの DrawingAttributes プロパティを使用します。ストロークのコレクションの描画属性を変更するには、InkStrokes コレクションの ModifyDrawingAttributes メソッドを呼び出します。

メモ DefaultDrawingAttributes プロパティは、独自の DrawingAttributes プロパティを設定していないすべてのカーソルが使用する描画属性を保持します。たとえば、新しい IInkCursor オブジェクトは DefaultDrawingAttributes を使用し、DrawingAttributesNULL が設定された既存の IInkCursor オブジェクトも DefaultDrawingAttributes を使用します。
vtbl 12 HRESULT putref_DefaultDrawingAttributes(IInkDrawingAttributes* NewAttributes)

インクの描画および表示時に使用する既定の描画属性を取得または設定します。(IInkCollector.putref_DefaultDrawingAttributes)

NewAttributesIInkDrawingAttributes*inoptional新しいストロークに適用する既定の描画属性へのポインタである。

解説(Remarks)

このプロパティで指定した描画属性は、新しいカーソルに割り当てられる属性です。

既定の描画属性は次のとおりです。

AntiAliased = TRUE

Color = BLACK (RGB(0,0,0))。ハイ コントラスト モードでない場合。それ以外の場合は Color=COLOR_WINDOWTEXT

FitToCurve = FALSE

Height = 1 (インク空間単位)

IgnorePressure = FALSE

PenTip = Ball

RasterOperation = CopyPen

Transparency = 0 (完全に不透明)

Width = 53 (インク空間単位)

新しいカーソルに別の属性を設定するには、IInkCursor オブジェクトの DrawingAttributes プロパティを使用します。

単一のストロークの描画属性を変更するには、IInkStrokeDisp オブジェクトの DrawingAttributes プロパティを使用します。ストロークのコレクションの描画属性を変更するには、InkStrokes コレクションの ModifyDrawingAttributes メソッドを呼び出します。

メモ DefaultDrawingAttributes プロパティは、独自の DrawingAttributes プロパティを設定していないすべてのカーソルが使用する描画属性を保持します。たとえば、新しい IInkCursor オブジェクトは DefaultDrawingAttributes を使用し、DrawingAttributesNULL が設定された既存の IInkCursor オブジェクトも DefaultDrawingAttributes を使用します。
vtbl 13 HRESULT get_Renderer(IInkRenderer** CurrentInkRenderer)

インクの描画に使用される InkRenderer オブジェクトを取得または設定します。(IInkCollector.get_Renderer)

CurrentInkRendererIInkRenderer**out現在使用されているインク レンダラを受け取るポインタである。

解説(Remarks)

特定のウィンドウ メッセージを処理している間に InkCollector に関連付けられた Renderer を変更すると、関数が再入呼び出しされ、予期しない結果を招くことがあります。たとえば、メッセージ ハンドラー内で別の Renderer に切り替えたり、その変換を変更したりすると、再入呼び出しが発生する可能性があります。これは次のメッセージに影響します。WM_ACTIVATEWM_ACTIVATEAPPWM_NCACTIVATEWM_PAINTwParamSC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt-Tab または Alt-Esc のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。

vtbl 14 HRESULT putref_Renderer(IInkRenderer* NewInkRenderer)

インクの描画に使用される InkRenderer オブジェクトを取得または設定します。

NewInkRendererIInkRenderer*inoptional使用するインク レンダラへのポインタである。

解説(Remarks)

特定のウィンドウ メッセージを処理している間に InkCollector に関連付けられた Renderer を変更すると、関数が再入呼び出しされ、予期しない結果を招くことがあります。たとえば、メッセージ ハンドラー内で別の Renderer に切り替えたり、その変換を変更したりすると、再入呼び出しが発生する可能性があります。これは次のメッセージに影響します。WM_ACTIVATEWM_ACTIVATEAPPWM_NCACTIVATEWM_PAINTwParamSC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt-Tab または Alt-Esc のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。

vtbl 15 HRESULT get_Ink(IInkDisp** Ink)

InkCollector オブジェクトまたは InkOverlay オブジェクトに関連付けられている InkDisp オブジェクトを取得または設定します。(IInkCollector.get_Ink)

InkIInkDisp**outこのコレクタが収集したインク オブジェクトを受け取るポインタである。

解説(Remarks)

メモ このプロパティを設定する前に、InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にする必要があります。InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。その後 Ink プロパティを設定し、Enabled プロパティを TRUE に設定してオブジェクトを再度有効にできます。
InkCollector は既定で InkDisp オブジェクトを作成します。特定のアプリケーション ウィンドウ上に 2 つ以上の InkDisp オブジェクトが存在する場合、それらを切り替えて任意のオブジェクトにインクを収集できます (いずれかの InkDisp オブジェクトを逆シリアル化した後など)。
vtbl 16 HRESULT putref_Ink(IInkDisp* NewInk)

InkCollector オブジェクトまたは InkOverlay オブジェクトに関連付けられている InkDisp オブジェクトを取得または設定します。

NewInkIInkDisp*inoptionalこのコレクタに関連付けるインク オブジェクトへのポインタである。

解説(Remarks)

メモ このプロパティを設定する前に、InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にする必要があります。InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。その後 Ink プロパティを設定し、Enabled プロパティを TRUE に設定してオブジェクトを再度有効にできます。
InkCollector は既定で InkDisp オブジェクトを作成します。特定のアプリケーション ウィンドウ上に 2 つ以上の InkDisp オブジェクトが存在する場合、それらを切り替えて任意のオブジェクトにインクを収集できます (いずれかの InkDisp オブジェクトを逆シリアル化した後など)。
vtbl 17 HRESULT get_AutoRedraw(VARIANT_BOOL* AutoRedraw)

ウィンドウが無効化されたときにインク コレクターがインクを再描画するかどうかを指定する値を取得または設定します。(IInkCollector.get_AutoRedraw)

AutoRedrawVARIANT_BOOL*outウィンドウの再描画時にインクを自動再描画するかどうかを受け取る VARIANT_BOOL へのポインタである。

解説(Remarks)

VARIANT_TRUE の場合、ウィンドウが無効化されたときにインク コレクターはインクを再描画します。たとえば、ウィンドウを最小化してから元に戻すと、インクは自動的に再描画されます。VARIANT_FALSE の場合、ウィンドウが無効化されてもインク コレクターはインクを再描画しません。たとえば、ウィンドウを最小化してから元に戻すと、インクは画面から消えます。

AutoRedrawVARIANT_FALSE の場合でも、DynamicRendering プロパティが false でない限り、書き込み中はインクが表示されます。

アプリケーションが独自の描画を行う場合や、描画の問題の影響を受けやすい場合は、再描画を自分で処理し、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールの AutoRedraw プロパティを VARIANT_FALSE に設定できます。再描画の処理には次の表のイベントを使用します。

オブジェクトまたはコントロール イベント
InkCollector オブジェクト 基になるコントロールの Invalidated イベントと Paint イベント。
InkOverlay オブジェクト 基になるコントロールの Invalidated イベントと Paint イベント。
InkPicture コントロール InkPicture コントロールが継承した Invalidated イベントと Paint イベント。
vtbl 18 HRESULT put_AutoRedraw(VARIANT_BOOL AutoRedraw)

ウィンドウが無効化されたときにインク コレクターがインクを再描画するかどうかを指定する値を取得または設定します。(IInkCollector.put_AutoRedraw)

AutoRedrawVARIANT_BOOLinウィンドウの再描画時にインクを自動再描画するかどうかを指定する VARIANT_BOOL である。

解説(Remarks)

VARIANT_TRUE の場合、ウィンドウが無効化されたときにインク コレクターはインクを再描画します。たとえば、ウィンドウを最小化してから元に戻すと、インクは自動的に再描画されます。VARIANT_FALSE の場合、ウィンドウが無効化されてもインク コレクターはインクを再描画しません。たとえば、ウィンドウを最小化してから元に戻すと、インクは画面から消えます。

AutoRedrawVARIANT_FALSE の場合でも、DynamicRendering プロパティが false でない限り、書き込み中はインクが表示されます。

アプリケーションが独自の描画を行う場合や、描画の問題の影響を受けやすい場合は、再描画を自分で処理し、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールの AutoRedraw プロパティを VARIANT_FALSE に設定できます。再描画の処理には次の表のイベントを使用します。

オブジェクトまたはコントロール イベント
InkCollector オブジェクト 基になるコントロールの Invalidated イベントと Paint イベント。
InkOverlay オブジェクト 基になるコントロールの Invalidated イベントと Paint イベント。
InkPicture コントロール InkPicture コントロールが継承した Invalidated イベントと Paint イベント。
vtbl 19 HRESULT get_CollectingInk(VARIANT_BOOL* Collecting)

インク コレクター (InkCollector、InkOverlay、または InkPicture) に現在インクが描画されているかどうかを指定する値を取得します。(IInkCollector.get_CollectingInk)

CollectingVARIANT_BOOL*out現在インクを収集中(ストローク描画中)かどうかを受け取る VARIANT_BOOL へのポインタである。

解説(Remarks)

Stroke イベントを監視する代わりに、CollectingInk プロパティを使用してインク コレクターにインクが描画されているかどうかを確認できます。

メモ インクの収集はアプリケーションのコードとは別のスレッドで行われるため、CollectingInk プロパティを確認した直後に値が変化する可能性があります。そのため、実際にはインク コレクターがインクを収集しているにもかかわらず、収集していないという前提でコードが動作する場合があります。この場合はエラーがスローされます。安全のため、そのようなコードは try-catch ブロック内に記述してください。
vtbl 20 HRESULT get_CollectionMode(InkCollectionMode* Mode)

ユーザーの書き込み時に、インク、ジェスチャ、またはその両方のいずれを認識するかを決定する収集モードを取得または設定します。(IInkCollector.get_CollectionMode)

ModeInkCollectionMode*out現在の収集モード(インク・ジェスチャ・両方)を受け取る InkCollectionMode へのポインタである。

解説(Remarks)

使用できるモードの一覧については、InkCollectionMode 列挙型を参照してください。ただし、Microsoft Windows XP Tablet PC Edition Software Development Kit (SDK) がインストールされていても認識エンジンがインストールされていないシステムで CollectionMode プロパティを使用する場合、モードを GestureOnly または InkAndGesture に設定することはできません。

メモ InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールは、インクの収集中に CollectionMode プロパティを変更しようとするとエラーを発生させます。この競合を避けるため、CollectionMode プロパティを変更する前に CollectingInk プロパティを確認してください。
CollectionMode の各値では、次の動作になります。

InkOnly モード

GestureOnly モード

InkAndGesture モード

収集モードを変更しても、個々のジェスチャの状態は変わりません。

CollectionModeInkAndGesture に設定され、かつ (SetGestureStatus メソッドの呼び出しによって) 特定のジェスチャに対するオブジェクトやコントロールの関心が設定されている場合、望ましくない動作が発生することがあります。特定のジェスチャに似たインクを描画し、そのジェスチャが認識エンジンの代替候補の一覧に含まれていると、そのジェスチャが最上位の候補でなくても Gesture イベントが発生し、インクが消えてしまいます。インクが消えるのを防ぎ、ジェスチャの収集をキャンセルするには、関心のないイベントであれば Cancel パラメーターを TRUE に設定します。

CollectionModeGestureOnly に設定されている場合、ユーザーがジェスチャを行ってから Gesture イベントが発生するまでのタイムアウトは固定値であり、プログラムで変更することはできません。ジェスチャの認識は InkAndGesture モードの方が高速です。InkAndGesture モードでインクの収集を防ぐには、次のようにします。

  1. CollectionMode プロパティを InkAndGesture に設定します。
  2. Stroke イベントでストロークを削除します。
  3. Gesture イベントでジェスチャを処理します。
  4. ジェスチャ中にインクが流れないように、DynamicRenderingFALSE に設定します。
vtbl 21 HRESULT put_CollectionMode(InkCollectionMode Mode)

ユーザーの書き込み時に、インク、ジェスチャ、またはその両方のいずれを認識するかを決定する収集モードを取得または設定します。(IInkCollector.put_CollectionMode)

ModeInkCollectionModein設定する収集モード(インク・ジェスチャ・両方)を指定する InkCollectionMode 値である。

解説(Remarks)

使用できるモードの一覧については、InkCollectionMode 列挙型を参照してください。ただし、Microsoft Windows XP Tablet PC Edition Software Development Kit (SDK) がインストールされていても認識エンジンがインストールされていないシステムで CollectionMode プロパティを使用する場合、モードを GestureOnly または InkAndGesture に設定することはできません。

メモ InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールは、インクの収集中に CollectionMode プロパティを変更しようとするとエラーを発生させます。この競合を避けるため、CollectionMode プロパティを変更する前に CollectingInk プロパティを確認してください。
CollectionMode の各値では、次の動作になります。

InkOnly モード

GestureOnly モード

InkAndGesture モード

収集モードを変更しても、個々のジェスチャの状態は変わりません。

CollectionModeInkAndGesture に設定され、かつ (SetGestureStatus メソッドの呼び出しによって) 特定のジェスチャに対するオブジェクトやコントロールの関心が設定されている場合、望ましくない動作が発生することがあります。特定のジェスチャに似たインクを描画し、そのジェスチャが認識エンジンの代替候補の一覧に含まれていると、そのジェスチャが最上位の候補でなくても Gesture イベントが発生し、インクが消えてしまいます。インクが消えるのを防ぎ、ジェスチャの収集をキャンセルするには、関心のないイベントであれば Cancel パラメーターを TRUE に設定します。

CollectionModeGestureOnly に設定されている場合、ユーザーがジェスチャを行ってから Gesture イベントが発生するまでのタイムアウトは固定値であり、プログラムで変更することはできません。ジェスチャの認識は InkAndGesture モードの方が高速です。InkAndGesture モードでインクの収集を防ぐには、次のようにします。

  1. CollectionMode プロパティを InkAndGesture に設定します。
  2. Stroke イベントでストロークを削除します。
  3. Gesture イベントでジェスチャを処理します。
  4. ジェスチャ中にインクが流れないように、DynamicRenderingFALSE に設定します。
vtbl 22 HRESULT get_DynamicRendering(VARIANT_BOOL* Enabled)

インクを描画中にレンダリングするかどうかを指定する値を取得または設定します。(IInkCollector.get_DynamicRendering)

EnabledVARIANT_BOOL*out描画中にインクをリアルタイム表示する動的レンダリングが有効かどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 23 HRESULT put_DynamicRendering(VARIANT_BOOL Enabled)

インクを描画中にレンダリングするかどうかを指定する値を取得または設定します。(IInkCollector.put_DynamicRendering)

EnabledVARIANT_BOOLin描画中の動的レンダリングを有効にするかどうかを指定する VARIANT_BOOL である。
vtbl 24 HRESULT get_DesiredPacketDescription(VARIANT* PacketGuids)

InkCollector の目的のパケット記述を取得または設定します。(IInkCollector.get_DesiredPacketDescription)

PacketGuidsVARIANT*out収集するパケットに含めたいプロパティの GUID 配列を受け取る VARIANT へのポインタである。

解説(Remarks)

この記述は、PacketProperty オブジェクトのグローバル一意識別子 (GUID) の配列です。

マルチタブレット モードでは、これはすべてのタブレット デバイスに対するパケット記述になります。いずれかのデバイスが特定のパケット記述プロパティをサポートしていない場合、そのプロパティのデータは返されません。

既定では、DesiredPacketDescription には PacketProperty オブジェクトの STR_GUID_XSTR_GUID_YSTR_GUID_NORMALPRESSURE が含まれます。DesiredPacketDescription にそれ以外の値 (たとえば STR_GUID_BUTTONPRESSURE のみ) を設定した場合でも、STR_GUID_XSTR_GUID_Y が追加されます。つまり、DesiredPacketDescription を取得すると {ButtonPressure} ではなく {X,Y,ButtonPressure} が返されます。

DesiredPacketDescriptionSTR_GUID_PAKETSTATUS を含む値を設定すると、パケット ステータスは 3 番目の位置に追加されます。たとえば、DesiredPacketDescription に (a, b, c, d, PacketStatus, e, f) を設定した場合、DesiredPacketDescription を取得すると結果は (X, Y, PacketStatus, a, b, c, d, e, f) になります。

このプロパティへの変更は、Enabled プロパティが FALSE から TRUE に変わるまで、受信するパケット データには反映されません。

vtbl 25 HRESULT put_DesiredPacketDescription(VARIANT PacketGuids)

InkCollector の目的のパケット記述を取得または設定します。(IInkCollector.put_DesiredPacketDescription)

PacketGuidsVARIANTin収集するパケットに含めたいプロパティの GUID 配列を格納した VARIANT である。

解説(Remarks)

この記述は、PacketProperty オブジェクトのグローバル一意識別子 (GUID) の配列です。

マルチタブレット モードでは、これはすべてのタブレット デバイスに対するパケット記述になります。いずれかのデバイスが特定のパケット記述プロパティをサポートしていない場合、そのプロパティのデータは返されません。

既定では、DesiredPacketDescription には PacketProperty オブジェクトの STR_GUID_XSTR_GUID_YSTR_GUID_NORMALPRESSURE が含まれます。DesiredPacketDescription にそれ以外の値 (たとえば STR_GUID_BUTTONPRESSURE のみ) を設定した場合でも、STR_GUID_XSTR_GUID_Y が追加されます。つまり、DesiredPacketDescription を取得すると {ButtonPressure} ではなく {X,Y,ButtonPressure} が返されます。

DesiredPacketDescriptionSTR_GUID_PAKETSTATUS を含む値を設定すると、パケット ステータスは 3 番目の位置に追加されます。たとえば、DesiredPacketDescription に (a, b, c, d, PacketStatus, e, f) を設定した場合、DesiredPacketDescription を取得すると結果は (X, Y, PacketStatus, a, b, c, d, e, f) になります。

このプロパティへの変更は、Enabled プロパティが FALSE から TRUE に変わるまで、受信するパケット データには反映されません。

vtbl 26 HRESULT get_MouseIcon(IPictureDisp** MouseIcon)

カスタムのマウス アイコンを取得または設定します。(IInkCollector.get_MouseIcon)

MouseIconIPictureDisp**outマウス ポインタにカスタム アイコンとして使用される画像を受け取るポインタである。

解説(Remarks)

[propputref] 関数は NULL 参照を受け付けます。その場合は S_OK が返されます。

このプロパティは、MousePointer プロパティが IMP_Custom に設定されている場合に使用されるカスタム アイコンを提供します。

MouseIcon プロパティを使用すると、カーソル ファイルまたはアイコン ファイルのいずれかを読み込むことができます。MouseIcon プロパティにより、アプリケーションは任意のサイズおよび任意のホット スポット位置を持つカスタム カーソルを利用できます。

vtbl 27 HRESULT put_MouseIcon(IPictureDisp* MouseIcon)
MouseIconIPictureDisp*inoptionalマウス ポインタとして使用するカスタム アイコン画像へのポインタである。
vtbl 28 HRESULT putref_MouseIcon(IPictureDisp* MouseIcon)

カスタムのマウス アイコンを取得または設定します。

MouseIconIPictureDisp*inoptionalマウス ポインタとして使用するカスタム アイコン画像への参照ポインタである。

解説(Remarks)

[propputref] 関数は NULL 参照を受け付けます。その場合は S_OK が返されます。

このプロパティは、MousePointer プロパティが IMP_Custom に設定されている場合に使用されるカスタム アイコンを提供します。

MouseIcon プロパティを使用すると、カーソル ファイルまたはアイコン ファイルのいずれかを読み込むことができます。MouseIcon プロパティにより、アプリケーションは任意のサイズおよび任意のホット スポット位置を持つカスタム カーソルを利用できます。

vtbl 29 HRESULT get_MousePointer(InkMousePointer* MousePointer)

表示されるマウス ポインターの種類を示す値を取得または設定します。(IInkCollector.get_MousePointer)

MousePointerInkMousePointer*out現在のマウス ポインタの種類を受け取る InkMousePointer へのポインタである。

解説(Remarks)

MousePointer プロパティを IMP_Default に設定した場合、マウス カーソルの設定は現在のカーソルの描画属性に基づきます。インク コレクターが無効な場合、マウス カーソルの設定は基になるウィンドウのマウス カーソルの DrawingAttributes プロパティに基づきます。MousePointer プロパティが IMP_Custom に設定され、MouseIcon プロパティが NULL の場合、インク コレクターはマウス カーソルの設定を処理しなくなります。それ以外の設定 (MousePointer プロパティが IMP_Default かつ MouseIcon プロパティが NULL の場合以外) では、マウス カーソルは強制的に現在の設定が使用されます。

フォームやダイアログ ボックス上のコントロールの上をマウス ポインターが通過する際に機能の変化を示したい場合に、このプロパティを使用できます。IMP_Hourglass の設定は、処理や操作が完了するまでユーザーが待つ必要があることを示すのに便利です。

vtbl 30 HRESULT put_MousePointer(InkMousePointer MousePointer)

表示されるマウス ポインターの種類を示す値を取得または設定します。(IInkCollector.put_MousePointer)

MousePointerInkMousePointerin設定するマウス ポインタの種類を指定する InkMousePointer 値である。

解説(Remarks)

MousePointer プロパティを IMP_Default に設定した場合、マウス カーソルの設定は現在のカーソルの描画属性に基づきます。インク コレクターが無効な場合、マウス カーソルの設定は基になるウィンドウのマウス カーソルの DrawingAttributes プロパティに基づきます。MousePointer プロパティが IMP_Custom に設定され、MouseIcon プロパティが NULL の場合、インク コレクターはマウス カーソルの設定を処理しなくなります。それ以外の設定 (MousePointer プロパティが IMP_Default かつ MouseIcon プロパティが NULL の場合以外) では、マウス カーソルは強制的に現在の設定が使用されます。

フォームやダイアログ ボックス上のコントロールの上をマウス ポインターが通過する際に機能の変化を示したい場合に、このプロパティを使用できます。IMP_Hourglass の設定は、処理や操作が完了するまでユーザーが待つ必要があることを示すのに便利です。

vtbl 31 HRESULT get_Cursors(IInkCursors** Cursors)

インクを入力する領域で使用できるカーソルのコレクションを取得します。各カーソルは、ペンやその他のインク入力デバイスの先端に対応します。(IInkCollector.get_Cursors)

CursorsIInkCursors**outこのコレクタで使用可能なカーソルのコレクションを受け取るポインタである。

解説(Remarks)

カーソルは InkCollector オブジェクトごとに固有です。

InkCollector が新たに検出したカーソルは、返されるカーソルのコレクションに追加されます。ただし、返されるカーソルは InkCollector が検出した順に並んでいるとは限りません。

InkCollector でマウスが入力デバイスとして有効になっている場合 (SetAllTabletsMode メソッドの useMouse パラメーターが TRUE の場合)、マウスは InkCollector がペンなどの他のカーソルを検出した後に IInkCursors コレクションに追加されます。これは、ペンもマウスと同様に動作するためです。

メモ CursorInRange イベントは、ペンなどの他のカーソルがストロークを描画した (Stroke イベントが発生した) 後に、マウス カーソルに対して受け取られます。
IInkCursors コレクションは、次の場合にリセットされます (要素数が 0 になり、オブジェクトを含まなくなります)。
vtbl 32 HRESULT get_MarginX(INT* MarginX)

ウィンドウ矩形の周囲の x 軸方向のマージンを画面座標で取得または設定します。このマージンはインク ウィンドウの端の周囲にバッファーを提供します。(IInkCollector.get_MarginX)

MarginXINT*out入力領域の水平方向のマージン(ピクセル)を受け取るポインタである。

解説(Remarks)

このプロパティは主に非統合型のタブレット デバイスで使用されます。画面と 1 対 1 で対応しないデバイスに書き込む際、このバッファーによってユーザーに誤差の余裕が与えられます。

マージンは画面座標で指定します。正のマージンはコンテキストの外側に広がり、負のマージンはコンテキストの内側に広がり、0 の場合はマージンなしになります。ストロークがマージン内で開始された場合、インクは収集されます。この動作によってインクがクリップされることはありません。オブジェクトまたはコントロールのコンテキストは、GetWindowInputRectangle メソッドで取得されるウィンドウ入力矩形、またはウィンドウのクライアント矩形のいずれかです。

マージンはアプリケーションのウィンドウ内でのみ有効です。アプリケーションのウィンドウの外でペンを使用すると、アプリケーションはフォーカスを失い、インクを収集できません。

メモ このプロパティを設定する前に、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールを無効にする必要があります。InkCollector または InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。InkOverlay コントロールでの書き込みを無効にするには、InkEnabled プロパティを FALSE に設定します。その後 MarginX プロパティを設定し、Enabled プロパティ (または InkEnabled プロパティ) を TRUE に設定してオブジェクトまたはコントロールを再度有効にできます。
vtbl 33 HRESULT put_MarginX(INT MarginX)

ウィンドウ矩形の周囲の x 軸方向のマージンを画面座標で取得または設定します。このマージンはインク ウィンドウの端の周囲にバッファーを提供します。(IInkCollector.put_MarginX)

MarginXINTin入力領域の水平方向のマージン(ピクセル)を指定する。

解説(Remarks)

このプロパティは主に非統合型のタブレット デバイスで使用されます。画面と 1 対 1 で対応しないデバイスに書き込む際、このバッファーによってユーザーに誤差の余裕が与えられます。

マージンは画面座標で指定します。正のマージンはコンテキストの外側に広がり、負のマージンはコンテキストの内側に広がり、0 の場合はマージンなしになります。ストロークがマージン内で開始された場合、インクは収集されます。この動作によってインクがクリップされることはありません。オブジェクトまたはコントロールのコンテキストは、GetWindowInputRectangle メソッドで取得されるウィンドウ入力矩形、またはウィンドウのクライアント矩形のいずれかです。

マージンはアプリケーションのウィンドウ内でのみ有効です。アプリケーションのウィンドウの外でペンを使用すると、アプリケーションはフォーカスを失い、インクを収集できません。

メモ このプロパティを設定する前に、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールを無効にする必要があります。InkCollector または InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。InkOverlay コントロールでの書き込みを無効にするには、InkEnabled プロパティを FALSE に設定します。その後 MarginX プロパティを設定し、Enabled プロパティ (または InkEnabled プロパティ) を TRUE に設定してオブジェクトまたはコントロールを再度有効にできます。
vtbl 34 HRESULT get_MarginY(INT* MarginY)

ウィンドウ矩形の周囲の y 軸方向のマージンを画面座標で取得または設定します。このマージンはインク ウィンドウの端の周囲にバッファーを提供します。(IInkCollector.get_MarginY)

MarginYINT*out入力領域の垂直方向のマージン(ピクセル)を受け取るポインタである。

解説(Remarks)

このプロパティは主に非統合型のタブレット デバイスで使用されます。画面と 1 対 1 で対応しないデバイスに書き込む際、このバッファーによってユーザーに誤差の余裕が与えられます。

マージンは画面座標で指定します。正のマージンはコンテキストの外側に広がり、負のマージンはコンテキストの内側に広がり、0 の場合はマージンなしになります。ストロークがマージン内で開始された場合、インクは収集されます。この動作によってインクがクリップされることはありません。オブジェクトまたはコントロールのコンテキストは、GetWindowInputRectangle メソッドで取得されるウィンドウ入力矩形、またはウィンドウのクライアント矩形のいずれかです。

マージンはアプリケーションのウィンドウ内でのみ有効です。アプリケーションのウィンドウの外でペンを使用すると、アプリケーションはフォーカスを失い、インクを収集できません。

メモ このプロパティを設定する前に、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールを無効にする必要があります。InkCollector または InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。InkOverlay コントロールでの書き込みを無効にするには、InkEnabled プロパティを FALSE に設定します。その後 MarginY プロパティを設定し、Enabled プロパティ (または InkEnabled プロパティ) を TRUE に設定してオブジェクトまたはコントロールを再度有効にできます。
vtbl 35 HRESULT put_MarginY(INT MarginY)

ウィンドウ矩形の周囲の y 軸方向のマージンを画面座標で取得または設定します。このマージンはインク ウィンドウの端の周囲にバッファーを提供します。(IInkCollector.put_MarginY)

MarginYINTin入力領域の垂直方向のマージン(ピクセル)を指定する。

解説(Remarks)

このプロパティは主に非統合型のタブレット デバイスで使用されます。画面と 1 対 1 で対応しないデバイスに書き込む際、このバッファーによってユーザーに誤差の余裕が与えられます。

マージンは画面座標で指定します。正のマージンはコンテキストの外側に広がり、負のマージンはコンテキストの内側に広がり、0 の場合はマージンなしになります。ストロークがマージン内で開始された場合、インクは収集されます。この動作によってインクがクリップされることはありません。オブジェクトまたはコントロールのコンテキストは、GetWindowInputRectangle メソッドで取得されるウィンドウ入力矩形、またはウィンドウのクライアント矩形のいずれかです。

マージンはアプリケーションのウィンドウ内でのみ有効です。アプリケーションのウィンドウの外でペンを使用すると、アプリケーションはフォーカスを失い、インクを収集できません。

メモ このプロパティを設定する前に、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールを無効にする必要があります。InkCollector または InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。InkOverlay コントロールでの書き込みを無効にするには、InkEnabled プロパティを FALSE に設定します。その後 MarginY プロパティを設定し、Enabled プロパティ (または InkEnabled プロパティ) を TRUE に設定してオブジェクトまたはコントロールを再度有効にできます。
vtbl 36 HRESULT get_Tablet(IInkTablet** SingleTablet)

カーソルが属する IInkTablet オブジェクト、またはオブジェクトやコントロールが現在入力の収集に使用している IInkTablet オブジェクトを取得します。(IInkCollector.get_Tablet)

SingleTabletIInkTablet**out単一タブレット統合モードで使用されているタブレット オブジェクトを受け取るポインタである。

解説(Remarks)

インクを収集するオブジェクトまたはコントロールの場合、このプロパティは 1 台のタブレットのみからインクを収集しているときにだけ有効です。すべてのタブレットからインクを収集しているオブジェクトまたはコントロールでこのプロパティにアクセスすると、例外が発生します。

特定のメッセージ ハンドラー内でこのプロパティにアクセスすると、内部の関数が再入され、予期しない結果を招くことがあります。次のメッセージを処理する際は、再入呼び出しが発生しないように注意してください。WM_ACTIVATEWM_ACTIVATEAPPWM_NCACTIVATEWM_PAINTwParamSC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt-Tab または Alt-Esc のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。

vtbl 37 HRESULT get_SupportHighContrastInk(VARIANT_BOOL* Support)

システムがハイ コントラスト モードのときに、インクを単一の色でレンダリングするかどうかを指定する値を取得または設定します。(IInkCollector.get_SupportHighContrastInk)

SupportVARIANT_BOOL*outハイ コントラスト モード時にインクを単色で表示する設定が有効かどうかを受け取る VARIANT_BOOL へのポインタである。

解説(Remarks)

このプロパティは、システムがハイ コントラスト モードに切り替わったときのインクのレンダリング方法を変更します。

システムがハイ コントラスト モードで SupportHighContrastInk プロパティが TRUE の場合、リアルタイム インク アプリケーションは COLOR_WINDOWTEXT の色を使用しますが、この条件下で描画されたストローク本来の色は変わりません。たとえば、Color プロパティが RGB(0,0,255) (青) に設定され、COLOR_WINDOWTEXT が RGB(255,255,255) (白) に設定されていて、システムがハイ コントラスト モードである場合、新しく描画されたストロークは白でレンダリングされますが、実際のストロークの色は青のままです。この動作の詳細については、Color プロパティおよび GetSysColor 関数を参照してください。

vtbl 38 HRESULT put_SupportHighContrastInk(VARIANT_BOOL Support)

システムがハイ コントラスト モードのときに、インクを単一の色でレンダリングするかどうかを指定する値を取得または設定します。(IInkCollector.put_SupportHighContrastInk)

SupportVARIANT_BOOLinハイ コントラスト モード時にインクを単色で表示するかどうかを指定する VARIANT_BOOL である。

解説(Remarks)

このプロパティは、システムがハイ コントラスト モードに切り替わったときのインクのレンダリング方法を変更します。

システムがハイ コントラスト モードで SupportHighContrastInk プロパティが TRUE の場合、リアルタイム インク アプリケーションは COLOR_WINDOWTEXT の色を使用しますが、この条件下で描画されたストローク本来の色は変わりません。たとえば、Color プロパティが RGB(0,0,255) (青) に設定され、COLOR_WINDOWTEXT が RGB(255,255,255) (白) に設定されていて、システムがハイ コントラスト モードである場合、新しく描画されたストロークは白でレンダリングされますが、実際のストロークの色は青のままです。この動作の詳細については、Color プロパティおよび GetSysColor 関数を参照してください。

vtbl 39 HRESULT SetGestureStatus(InkApplicationGesture Gesture, VARIANT_BOOL Listen)

特定のジェスチャに対するオブジェクトまたはコントロールの関心を変更します。(IInkCollector.SetGestureStatus)

GestureInkApplicationGesturein状態を設定するジェスチャ。
ListenVARIANT_BOOLinジェスチャを使用する場合は VARIANT_TRUE、無視する場合は VARIANT_FALSE を指定します。

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INK_INVALID_MODE
InkCollector の収集モードがジェスチャ モードである必要があります。
E_INK_EXCEPTION
例外が発生しました。
TPC_S_TRUNCATED
サポートされていないジェスチャです。
E_INVALIDARG
フラグが無効です。
E_OUTOFMEMORY
メモリを割り当てられません。

解説(Remarks)

特定のジェスチャに対するオブジェクトまたはコントロールの関心を取得するには、GetGestureStatus メソッドを呼び出します。

IAG_AllGestures ジェスチャ ID は InkEdit コントロールではサポートされておらず、エラーを返します。無効なジェスチャ ID を渡した場合、InkEdit ではエラーになりませんが、InkCollectorInkOverlayInkPicture では失敗します。

InkEdit コントロールの場合、このメソッドは Status プロパティが IES_Idle を返す場合にのみ呼び出してください。

vtbl 40 HRESULT GetGestureStatus(InkApplicationGesture Gesture, VARIANT_BOOL* Listening)

InkCollector オブジェクトまたは InkOverlay オブジェクトが特定のアプリケーション ジェスチャに関心を持っているかどうかを示します。

GestureInkApplicationGesturein状態を取得するジェスチャを設定します。
ListeningVARIANT_BOOL*outInkCollector コントロールが特定のアプリケーション ジェスチャに関心を持っている場合は VARIANT_TRUE、それ以外の場合は VARIANT_VALSE

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INK_INVALID_MODE
収集モードがジェスチャ モードである必要があります。
E_OUTOFMEMORY
操作を実行するためのメモリを割り当てられません。
E_INK_EXCEPTION
例外が発生しました。
E_INVALIDARG
フラグが無効です。

解説(Remarks)

gesture パラメーターに IAG_AllGestures を設定した場合、このメソッドは例外をスローします。

特定のジェスチャに対する InkCollector または InkOverlay オブジェクトの関心を設定するには、InkCollector または InkOverlay オブジェクトの SetGestureStatus メソッドを呼び出します。

メモ 既定では、InkCollector オブジェクトと InkOverlay オブジェクトはどのアプリケーション ジェスチャにも関心を持ちません。
vtbl 41 HRESULT GetWindowInputRectangle(IInkRectangle** WindowInputRectangle)

インクが描画されるウィンドウ矩形をピクセル単位で取得します。(IInkCollector.GetWindowInputRectangle)

WindowInputRectangleIInkRectangle**inoutインクが描画される InkRectangle 型の矩形。

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれています。
REGDB_CLASSNOTREG
InkRectangle オブジェクトが登録されていません。
E_INK_EXCEPTION
メソッド内で例外が発生しました。

解説(Remarks)

このメソッドに矩形を渡す前に、まず矩形を割り当てておく必要があります。

既定では、ウィンドウ入力矩形は {0,0,0,0} に設定されています。この既定の矩形はウィンドウ全体のサイズに対応します。

SetWindowInputRectangle メソッドを呼び出す前に GetWindowInputRectangle を呼び出した場合、このメソッドは既定の座標を持つ矩形を取得します。

vtbl 42 HRESULT SetWindowInputRectangle(IInkRectangle* WindowInputRectangle)

インクが描画されるウィンドウ矩形をピクセル単位で設定します。(IInkCollector.SetWindowInputRectangle)

WindowInputRectangleIInkRectangle*inoptionalインクが描画される矩形 (ウィンドウ座標)。

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INVALIDARG
矩形の座標が無効です (幅や高さが 0 の場合など)。
E_INK_COLLECTOR_BUSY
ストロークの途中でマッピングを更新することはできません。
E_INK_EXCEPTION
メソッド内で例外が発生しました。
E_INK_OVERLAPPING_INPUT_RECT
ウィンドウ入力矩形が、有効な InkCollector のウィンドウ入力矩形と重なっています。

解説(Remarks)

有効なインク コレクター (Enabled プロパティで設定します) のウィンドウ入力矩形が、別の有効なインク コレクターのウィンドウ入力矩形と重なる場合、E_INK_OVERLAPPING_INPUT_RECT エラーが返されます。

メモ 任意の時点で有効になっている入力矩形が 1 つだけであれば、重なっていてもエラーにはなりません。
既定では、ウィンドウ入力矩形は {0,0,0,0} に設定されています。この既定の矩形はウィンドウ全体のサイズに対応します。

ウィンドウ入力矩形を既定の動作 (座標 {0,0,0,0} の空の矩形) にリセットするには、SetWindowInputRectangle の呼び出しで NULL ではなく {0,0,0,0} を渡します。

Right プロパティの値が Left プロパティの値より小さい矩形、または Bottom プロパティの値が Top プロパティの値より小さい矩形を渡すことはできません。たとえば、{500, 500, 400, 400} というパラメーターを持つ矩形は無効です。

注意 ウィンドウ入力矩形をスプリッター コントロールやウィンドウの境界に重なるように設定すると、ウィンドウのサイズ変更時に予期しない結果が生じる可能性があります。
メモ 特定のメッセージ ハンドラー内でこのメソッドを呼び出すと、内部の関数が再入され、予期しない結果を招くことがあります。次のメッセージを処理する際は、再入呼び出しが発生しないように注意してください。WM_ACTIVATEWM_ACTIVATEAPPWM_NCACTIVATEWM_PAINTwParamSC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt+TAB または Alt+ESC のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。
vtbl 43 HRESULT SetAllTabletsMode(VARIANT_BOOL UseMouseForInput)

インク コレクター (InkCollector、InkOverlay、または InkPicture) が、Tablet PC に接続されている任意のタブレットからインクを収集できるようにします。(IInkCollector.SetAllTabletsMode)

UseMouseForInputVARIANT_BOOLinマウスを入力に使用する場合は VARIANT_TRUE、それ以外の場合は VARIANT_FALSE。既定値は VARIANT_TRUE です。このパラメーターは省略可能です。

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
成功しました。
E_INK_COLLECTOR_ENABLED
InkCollector が有効な間はモードを変更できません。
E_INK_EXCEPTION
メソッド内で例外が発生しました。
E_INVALIDARG
フラグが無効です。

解説(Remarks)

これは、インクを収集するオブジェクトまたはコントロールの既定のモードです。インク コレクターが 1 台のタブレットのみからインクを収集するようにするには、SetSingleTabletIntegratedMode メソッドを呼び出します。

メモ このメソッドを呼び出す前に、インク コレクターを無効にする必要があります。InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。InkPicture コントロールを無効にするには、InkEnabled プロパティを FALSE に設定します。SetAllTabletsMode メソッドを呼び出した後、Enabled (または InkEnabled) プロパティを TRUE に設定してオブジェクトまたはコントロールを再度有効にします。
インク コレクターが単一のタブレットによるインク収集からすべてのタブレットによるインク収集に切り替わると、Cursors プロパティは空のコレクションに設定されます。
メモ SetAllTabletsMode メソッドを useMouse パラメーターに TRUE を指定して呼び出すと、マウスが入力デバイスとして使用されます。その後 SetAllTabletsMode メソッドを useMouse パラメーターに VARIANT_FALSE を指定して呼び出しても、マウスは Cursors プロパティから削除されません。
vtbl 44 HRESULT SetSingleTabletIntegratedMode(IInkTablet* Tablet)

インク コレクター (InkCollector、InkOverlay、または InkPicture) が 1 台のタブレットのみからインクを収集するようにします。他のタブレットからのインクはインク コレクターによって無視されます。(IInkCollector.SetSingleTabletIntegratedMode)

TabletIInkTablet*inoptionalインクを収集または描画するタブレット。

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INK_COLLECTOR_ENABLED
コレクターが有効な間、タブレットはモードを変更できません。
E_INK_EXCEPTION
処理中に例外が発生しました。
E_INK_INCOMPATIBLE_OBJECT
タブレットが互換性のある Ink オブジェクトを指していません。

解説(Remarks)

インク コレクターがすべてのタブレットからインクを収集するようにするには、SetAllTabletsMode メソッドを呼び出します。

メモ このメソッドを呼び出す前に、インクを収集するインク コレクターのオブジェクトまたはコントロールを無効にする必要があります。InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。InkPicture コントロールを無効にするには、InkEnabled プロパティを FALSE に設定します。SetSingleTabletIntegratedMode メソッドを呼び出した後、Enabled (または InkEnabled) プロパティを TRUE に設定してオブジェクトまたはコントロールを再度有効にします。
このメソッドを呼び出すと、インク コレクターの Cursors プロパティは空のコレクションに設定されます。
vtbl 45 HRESULT GetEventInterest(InkCollectorEventInterest EventId, VARIANT_BOOL* Listen)

InkCollector クラス、InkOverlay クラス、または InkPicture クラスの特定のイベントに対して、オブジェクトが持つ関心を取得します。(IInkCollector.GetEventInterest)

EventIdInkCollectorEventInterestinこのメソッドが関心を確認するイベント。
ListenVARIANT_BOOL*out指定したイベントへの関心が設定されている場合は VARIANT_BOOL、それ以外の場合は VARIANT_FALSE

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INVALIDARG
イベントへの関心が無効です。
E_INK_EXCEPTION
処理中に例外が発生しました。
vtbl 46 HRESULT SetEventInterest(InkCollectorEventInterest EventId, VARIANT_BOOL Listen)

オブジェクトまたはコントロールが指定されたイベントに関心を持っているかどうかを示す値を変更します。(IInkCollector.SetEventInterest)

EventIdInkCollectorEventInterestinリッスンの対象となるイベント。
ListenVARIANT_BOOLinイベントを使用する場合は VARIANT_TRUE、無視する場合は VARIANT_FALSE

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INVALIDARG
イベントへの関心が無効です。
E_INK_EXCEPTION
処理中に例外が発生しました。

解説(Remarks)

このメソッドを使用すると、インク コレクターのすべてのイベントを切り替えることができます。これらのイベントの多くは、パフォーマンス上の理由から既定でオフになっています。既定でオンになっているのは StrokeCursorInRangeCursorOutOfRange のみです。

NewPacketsNewInAirPacketsCursorDown の各イベントは慎重に使用してください。特に、イベント ハンドラー内で多くのコードを実行すると、インクのパフォーマンスに悪影響を及ぼす可能性があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IInkCollector "{F0F060B5-8B1F-4A7C-89EC-880692588A4F}"
#usecom global IInkCollector IID_IInkCollector "{43FB1553-AD74-4EE8-88E4-3E6DAAC915DB}"
#comfunc global IInkCollector_get_hWnd                         7 var
#comfunc global IInkCollector_put_hWnd                         8 sptr
#comfunc global IInkCollector_get_Enabled                      9 var
#comfunc global IInkCollector_put_Enabled                      10 int
#comfunc global IInkCollector_get_DefaultDrawingAttributes     11 sptr
#comfunc global IInkCollector_putref_DefaultDrawingAttributes  12 sptr
#comfunc global IInkCollector_get_Renderer                     13 sptr
#comfunc global IInkCollector_putref_Renderer                  14 sptr
#comfunc global IInkCollector_get_Ink                          15 sptr
#comfunc global IInkCollector_putref_Ink                       16 sptr
#comfunc global IInkCollector_get_AutoRedraw                   17 var
#comfunc global IInkCollector_put_AutoRedraw                   18 int
#comfunc global IInkCollector_get_CollectingInk                19 var
#comfunc global IInkCollector_get_CollectionMode               20 var
#comfunc global IInkCollector_put_CollectionMode               21 int
#comfunc global IInkCollector_get_DynamicRendering             22 var
#comfunc global IInkCollector_put_DynamicRendering             23 int
#comfunc global IInkCollector_get_DesiredPacketDescription     24 var
#comfunc global IInkCollector_put_DesiredPacketDescription     25 int
#comfunc global IInkCollector_get_MouseIcon                    26 sptr
#comfunc global IInkCollector_put_MouseIcon                    27 sptr
#comfunc global IInkCollector_putref_MouseIcon                 28 sptr
#comfunc global IInkCollector_get_MousePointer                 29 var
#comfunc global IInkCollector_put_MousePointer                 30 int
#comfunc global IInkCollector_get_Cursors                      31 sptr
#comfunc global IInkCollector_get_MarginX                      32 var
#comfunc global IInkCollector_put_MarginX                      33 int
#comfunc global IInkCollector_get_MarginY                      34 var
#comfunc global IInkCollector_put_MarginY                      35 int
#comfunc global IInkCollector_get_Tablet                       36 sptr
#comfunc global IInkCollector_get_SupportHighContrastInk       37 var
#comfunc global IInkCollector_put_SupportHighContrastInk       38 int
#comfunc global IInkCollector_SetGestureStatus                 39 int,int
#comfunc global IInkCollector_GetGestureStatus                 40 int,var
#comfunc global IInkCollector_GetWindowInputRectangle          41 sptr
#comfunc global IInkCollector_SetWindowInputRectangle          42 sptr
#comfunc global IInkCollector_SetAllTabletsMode                43 int
#comfunc global IInkCollector_SetSingleTabletIntegratedMode    44 sptr
#comfunc global IInkCollector_GetEventInterest                 45 int,var
#comfunc global IInkCollector_SetEventInterest                 46 int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。