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

IInkOverlay

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDb82a463b-c1c5-45a3-997c-deab5651b67a継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

. (IInkOverlay)

解説(Remarks)

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

メソッド 54

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

vtbl 7 HRESULT get_hWnd(INT_PTR* CurrentWindow)

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

CurrentWindowINT_PTR*outインク オーバーレイが関連付けられている現在のウィンドウ ハンドルを受け取るポインタである。

解説(Remarks)

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

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

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

NewWindowINT_PTRinインク オーバーレイを関連付けるウィンドウ ハンドルを指定する。

解説(Remarks)

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

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

InkOverlay オブジェクトがペン入力 (in-air パケット、カーソルが範囲内に入るイベントなど) を収集するかどうかを指定する値を取得または設定します。(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)

InkOverlay オブジェクトがペン入力 (in-air パケット、カーソルが範囲内に入るイベントなど) を収集するかどうかを指定する値を取得または設定します。(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)

インクの描画および表示に使用する既定の描画属性を取得または設定します。(IInkOverlay.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 プロパティを使用します。

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

メモ DefaultDrawingAttributes プロパティには、各カーソルが独自の DrawingAttributes プロパティを設定していない限り、すべてのカーソルが使用する描画属性が格納されます。たとえば、新しい IInkCursor オブジェクトは DefaultDrawingAttributes を使用し、DrawingAttributesNULL に設定された既存の IInkCursor オブジェクトも DefaultDrawingAttributes を使用します。
vtbl 12 HRESULT putref_DefaultDrawingAttributes(IInkDrawingAttributes* NewAttributes)
NewAttributesIInkDrawingAttributes*inoptional新しいストロークに適用する既定の描画属性へのポインタである。
vtbl 13 HRESULT get_Renderer(IInkRenderer** CurrentInkRenderer)

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

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

解説(Remarks)

特定のウィンドウ メッセージを処理している間に、InkOverlay に関連付けられた 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)
NewInkRendererIInkRenderer*inoptional使用するインク レンダラへのポインタである。
vtbl 15 HRESULT get_Ink(IInkDisp** Ink)

InkCollector オブジェクトまたは InkOverlay オブジェクトに関連付けられている InkDisp オブジェクトを取得または設定します。(IInkOverlay.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)
NewInkIInkDisp*inoptionalこのオーバーレイに関連付けるインク オブジェクトへのポインタである。
vtbl 17 HRESULT get_AutoRedraw(VARIANT_BOOL* AutoRedraw)

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

ユーザーが書き込む際に、インク、ジェスチャ、またはその両方のいずれを認識するかを決定する収集モードを取得または設定します。(IInkOverlay.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)

ユーザーが書き込む際に、インク、ジェスチャ、またはその両方のいずれを認識するかを決定する収集モードを取得または設定します。(IInkOverlay.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)

インクが描画されるのに合わせてレンダリングされるかどうかを指定する値を取得または設定します。(IInkOverlay.get_DynamicRendering)

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

インクが描画されるのに合わせてレンダリングされるかどうかを指定する値を取得または設定します。(IInkOverlay.put_DynamicRendering)

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

InkCollector の目的のパケット記述を取得または設定します。(IInkOverlay.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 の目的のパケット記述を取得または設定します。(IInkOverlay.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)

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

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

解説(Remarks)

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

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

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

vtbl 27 HRESULT put_MouseIcon(IPictureDisp* MouseIcon)

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

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

解説(Remarks)

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

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

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

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

表示されるマウス ポインターの種類を示す値を取得または設定します。(IInkOverlay.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)

表示されるマウス ポインターの種類を示す値を取得または設定します。(IInkOverlay.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_EditingMode(InkOverlayEditingMode* EditingMode)

オブジェクトまたはコントロールがインク モード、削除モード、選択/編集モードのいずれであるかを指定する値を取得または設定します。(Get)

EditingModeInkOverlayEditingMode*out現在の編集モード(インク描画・削除・選択)を受け取る InkOverlayEditingMode へのポインタである。

解説(Remarks)

InkOverlay オブジェクトおよび InkPicture オブジェクトは、インクの収集中に EditingMode プロパティを変更するとエラーを生成します。この競合を避けるため、EditingMode プロパティを変更する前に CollectingInk プロパティが FALSE であることを確認してください。

インクの消去について詳しくは、ペンによるインクの消去 を参照してください。

vtbl 32 HRESULT put_EditingMode(InkOverlayEditingMode EditingMode)

オブジェクトまたはコントロールがインク モード、削除モード、選択/編集モードのいずれであるかを指定する値を取得または設定します。(Put)

EditingModeInkOverlayEditingModein設定する編集モード(インク描画・削除・選択)を指定する InkOverlayEditingMode 値である。

解説(Remarks)

InkOverlay オブジェクトおよび InkPicture オブジェクトは、インクの収集中に EditingMode プロパティを変更するとエラーを生成します。この競合を避けるため、EditingMode プロパティを変更する前に CollectingInk プロパティが FALSE であることを確認してください。

インクの消去について詳しくは、ペンによるインクの消去 を参照してください。

vtbl 33 HRESULT get_Selection(IInkStrokes** Selection)

InkOverlay オブジェクトまたは InkPicture コントロール内で現在選択されている InkStrokes コレクションを取得または設定します。(Get)

SelectionIInkStrokes**out現在選択されているストロークのコレクションを受け取るポインタである。

解説(Remarks)

InkStrokes コレクションが移動またはサイズ変更された後の外接矩形を取得するには、このプロパティが返す InkStrokes コレクションの GetBoundingBox メソッドを呼び出します。

InkStrokes コレクションが移動される前の外接矩形を取得するには、InkOverlay または InkPicture のイベントを処理します。

InkStrokes コレクションがサイズ変更される前の外接矩形を取得するには、InkOverlay または InkPicture のイベントを処理します。

vtbl 34 HRESULT put_Selection(IInkStrokes* Selection)

InkOverlay オブジェクトまたは InkPicture コントロール内で現在選択されている InkStrokes コレクションを取得または設定します。(Put)

SelectionIInkStrokes*inoptional選択状態にするストローク コレクションへのポインタである。

解説(Remarks)

InkStrokes コレクションが移動またはサイズ変更された後の外接矩形を取得するには、このプロパティが返す InkStrokes コレクションの GetBoundingBox メソッドを呼び出します。

InkStrokes コレクションが移動される前の外接矩形を取得するには、InkOverlay または InkPicture のイベントを処理します。

InkStrokes コレクションがサイズ変更される前の外接矩形を取得するには、InkOverlay または InkPicture のイベントを処理します。

vtbl 35 HRESULT get_EraserMode(InkOverlayEraserMode* EraserMode)

インクをストローク単位で消去するか、ポイント単位で消去するかを指定する値を取得または設定します。(Get)

EraserModeInkOverlayEraserMode*out現在の消しゴム モード(ストローク単位・ポイント単位)を受け取る InkOverlayEraserMode へのポインタである。

解説(Remarks)

このプロパティは、EditingMode プロパティが IOEM_Delete に設定されている場合にのみ適用されます。

vtbl 36 HRESULT put_EraserMode(InkOverlayEraserMode EraserMode)

インクをストローク単位で消去するか、ポイント単位で消去するかを指定する値を取得または設定します。(Put)

EraserModeInkOverlayEraserModein設定する消しゴム モード(ストローク単位・ポイント単位)を指定する InkOverlayEraserMode 値である。

解説(Remarks)

このプロパティは、EditingMode プロパティが IOEM_Delete に設定されている場合にのみ適用されます。

vtbl 37 HRESULT get_EraserWidth(INT* EraserWidth)

消しゴムのペン先の幅を指定する値を取得または設定します。(Get)

EraserWidthINT*out現在の消しゴムの幅(インク空間単位)を受け取るポインタである。

解説(Remarks)

この値は、消しゴムのペン先の幅をインク空間単位で指定します。

このプロパティに負の値を割り当てることはできません。

このプロパティは、EditingMode プロパティが IOEM_Delete に設定され、かつ EraserMode プロパティが IOERM_PointErase に設定されている場合にのみ適用されます。

vtbl 38 HRESULT put_EraserWidth(INT newEraserWidth)

消しゴムのペン先の幅を指定する値を取得または設定します。(Put)

newEraserWidthINTin設定する消しゴムの幅(インク空間単位)を指定する。

解説(Remarks)

この値は、消しゴムのペン先の幅をインク空間単位で指定します。

このプロパティに負の値を割り当てることはできません。

このプロパティは、EditingMode プロパティが IOEM_Delete に設定され、かつ EraserMode プロパティが IOERM_PointErase に設定されている場合にのみ適用されます。

vtbl 39 HRESULT get_AttachMode(InkOverlayAttachMode* AttachMode)

InkOverlay オブジェクトが対象のウィンドウの背面と前面のどちらにアタッチされるかを指定する値を取得または設定します。(Get)

AttachModeInkOverlayAttachMode*outインク レイヤをウィンドウの前面と背面のどちらに配置するかを受け取る InkOverlayAttachMode へのポインタである。

解説(Remarks)

メモ このプロパティを設定する前に InkOverlay オブジェクトを無効にしていない場合は、エラーが発生します。InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。その後、AttachMode プロパティを設定し、Enabled プロパティを TRUE に設定してオブジェクトを再度有効にします。
注意 AttachModeInFront に設定した後で、InkOverlay がアタッチされているコントロールにコントロールを追加した場合は、InkOverlayhWnd を設定し直す必要があります。まず EnabledFALSE に設定し、次に hWnd プロパティを設定してから、EnabledTRUE に設定します。
vtbl 40 HRESULT put_AttachMode(InkOverlayAttachMode AttachMode)

InkOverlay オブジェクトが対象のウィンドウの背面と前面のどちらにアタッチされるかを指定する値を取得または設定します。(Put)

AttachModeInkOverlayAttachModeinインク レイヤをウィンドウの前面と背面のどちらに配置するかを指定する InkOverlayAttachMode 値である。

解説(Remarks)

メモ このプロパティを設定する前に InkOverlay オブジェクトを無効にしていない場合は、エラーが発生します。InkOverlay オブジェクトを無効にするには、Enabled プロパティを FALSE に設定します。その後、AttachMode プロパティを設定し、Enabled プロパティを TRUE に設定してオブジェクトを再度有効にします。
注意 AttachModeInFront に設定した後で、InkOverlay がアタッチされているコントロールにコントロールを追加した場合は、InkOverlayhWnd を設定し直す必要があります。まず EnabledFALSE に設定し、次に hWnd プロパティを設定してから、EnabledTRUE に設定します。
vtbl 41 HRESULT get_Cursors(IInkCursors** Cursors)

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

vtbl 47 HRESULT get_SupportHighContrastInk(VARIANT_BOOL* Support)

システムがハイ コントラスト モードのときに、インクを単一の色でレンダリングするかどうかを指定する値を取得または設定します。(IInkOverlay.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 48 HRESULT put_SupportHighContrastInk(VARIANT_BOOL Support)

システムがハイ コントラスト モードのときに、インクを単一の色でレンダリングするかどうかを指定する値を取得または設定します。(IInkOverlay.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 49 HRESULT get_SupportHighContrastSelectionUI(VARIANT_BOOL* Support)

システムがハイ コントラスト モードのときに、すべての選択ユーザー インターフェイス (UI) 要素をハイ コントラストで描画するかどうかを指定する値を取得または設定します。(Get)

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

解説(Remarks)

このプロパティは、システムがハイ コントラスト モードに切り替わったときの選択 UI の表示方法を変更します。選択 UI の要素には、選択範囲の外接ボックスと選択ハンドルが含まれます。

システムがハイ コントラスト モードで、かつ SupportHighContrastSelectionUI プロパティが TRUE の場合、インクの選択では COLOR_WINDOWTEXTCOLOR_WINDOWCOLOR_HIGHLIGHT のシステム カラーを使用して選択 UI の要素が描画されます。システム カラーについて詳しくは、GetSysColor 関数を参照してください。

vtbl 50 HRESULT put_SupportHighContrastSelectionUI(VARIANT_BOOL Support)

システムがハイ コントラスト モードのときに、すべての選択ユーザー インターフェイス (UI) 要素をハイ コントラストで描画するかどうかを指定する値を取得または設定します。(Put)

SupportVARIANT_BOOLinハイ コントラスト モード時に選択 UI を高コントラスト表示するかどうかを指定する VARIANT_BOOL である。

解説(Remarks)

このプロパティは、システムがハイ コントラスト モードに切り替わったときの選択 UI の表示方法を変更します。選択 UI の要素には、選択範囲の外接ボックスと選択ハンドルが含まれます。

システムがハイ コントラスト モードで、かつ SupportHighContrastSelectionUI プロパティが TRUE の場合、インクの選択では COLOR_WINDOWTEXTCOLOR_WINDOWCOLOR_HIGHLIGHT のシステム カラーを使用して選択 UI の要素が描画されます。システム カラーについて詳しくは、GetSysColor 関数を参照してください。

vtbl 51 HRESULT HitTestSelection(INT x, INT y, SelectionHitResult* SelArea)

ヒット テストで選択範囲のどの部分がヒットしたかを判定します。

xINTinヒット テストの x 座標 (ピクセル単位)。
yINTinヒット テストの y 座標 (ピクセル単位)。
SelAreaSelectionHitResult*outSelectionHitResult 列挙型の値。ヒット テストで選択範囲のどの部分がヒットしたか (ヒットした場合) を示します。

戻り値

戻り値 説明
East
東側のサイズ変更ハンドルがヒットしました。
None
選択範囲のどの部分もヒットしませんでした。
North
北側のサイズ変更ハンドルがヒットしました。
Northeast
北東の角のサイズ変更ハンドルがヒットしました。
Northwest
北西の角のサイズ変更ハンドルがヒットしました。
Selection
選択範囲自体がヒットしました (選択ハンドルはヒットしていません)。
South
南側のサイズ変更ハンドルがヒットしました。
Southeast
南東の角のサイズ変更ハンドルがヒットしました。
Southwest
南西の角のサイズ変更ハンドルがヒットしました。
West
西側のサイズ変更ハンドルがヒットしました。
vtbl 52 HRESULT Draw(IInkRectangle* Rect)

InkOverlay オブジェクト内のインクを再描画する矩形を設定します。

RectIInkRectangle*inoptional描画対象の矩形 (ピクセル座標)。このパラメーターが NULL の場合、ウィンドウ全体が再描画されます。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

解説(Remarks)

AutoRedraw プロパティが TRUE の場合、rDrawRect で表される矩形内の InkDisp は、その領域が次に再描画されるときに描画されます。

vtbl 53 HRESULT SetGestureStatus(InkApplicationGesture Gesture, VARIANT_BOOL Listen)

特定のジェスチャに対するオブジェクトまたはコントロールの関心を設定します。

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 54 HRESULT GetGestureStatus(InkApplicationGesture Gesture, VARIANT_BOOL* Listening)

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

GestureInkApplicationGesturein状態を取得するジェスチャ。
ListeningVARIANT_BOOL*out

InkCollector コントロールが特定のアプリケーション ジェスチャに関心を持っている場合は VARIANT_TRUE、それ以外の場合は VARIANT_FALSE

このメソッドは、特定のアプリケーション ジェスチャに対する InkCollector オブジェクトまたは InkOverlay オブジェクトの関心を示す値を返します。VARIANT_TRUE の場合、InkCollector または InkOverlay オブジェクトはそのジェスチャに関心があり、ジェスチャが認識されると InkCollector または InkOverlay オブジェクトの Gesture イベントが発生します。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
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 55 HRESULT GetWindowInputRectangle(IInkRectangle** WindowInputRectangle)

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

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

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

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

解説(Remarks)

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

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

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

vtbl 56 HRESULT SetWindowInputRectangle(IInkRectangle* WindowInputRectangle)

インクが描画されるウィンドウ矩形をピクセル単位で設定します。(IInkOverlay.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_ACTIVATE WM_ACTIVATEAPPWM_NCACTIVATEWM_PAINTwParamSC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt+TAB または Alt+ESC のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。
vtbl 57 HRESULT SetAllTabletsMode(VARIANT_BOOL UseMouseForInput)

インク コレクター (InkCollector、InkOverlay、または InkPicture) が、Tablet PC に接続されている任意のタブレットからインクを収集できるようにします。(IInkOverlay.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 パラメーターに FALSE を指定して呼び出しても、マウスは Cursors プロパティから削除されません。
vtbl 58 HRESULT SetSingleTabletIntegratedMode(IInkTablet* Tablet)

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

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

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

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

解説(Remarks)

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

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

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

EventIdInkCollectorEventInterestinインク コレクターが関心を持つ、または持たないイベント。
ListenVARIANT_BOOL*out指定したイベントへの関心が設定されている場合は VARIANT_TRUE、それ以外の場合は VARIANT_FALSE

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

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

オブジェクトまたはコントロールが指定したイベントに関心を持つかどうかを示す値を設定します。

EventIdInkCollectorEventInterestinリッスンするイベント。EventID に指定できる値は、InkCollectorEventInterest 列挙型に定義されています。
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_IInkOverlay "{B82A463B-C1C5-45A3-997C-DEAB5651B67A}"
#usecom global IInkOverlay IID_IInkOverlay "{65D00646-CDE3-4A88-9163-6769F0F1A97D}"
#comfunc global IInkOverlay_get_hWnd                            7 var
#comfunc global IInkOverlay_put_hWnd                            8 sptr
#comfunc global IInkOverlay_get_Enabled                         9 var
#comfunc global IInkOverlay_put_Enabled                         10 int
#comfunc global IInkOverlay_get_DefaultDrawingAttributes        11 sptr
#comfunc global IInkOverlay_putref_DefaultDrawingAttributes     12 sptr
#comfunc global IInkOverlay_get_Renderer                        13 sptr
#comfunc global IInkOverlay_putref_Renderer                     14 sptr
#comfunc global IInkOverlay_get_Ink                             15 sptr
#comfunc global IInkOverlay_putref_Ink                          16 sptr
#comfunc global IInkOverlay_get_AutoRedraw                      17 var
#comfunc global IInkOverlay_put_AutoRedraw                      18 int
#comfunc global IInkOverlay_get_CollectingInk                   19 var
#comfunc global IInkOverlay_get_CollectionMode                  20 var
#comfunc global IInkOverlay_put_CollectionMode                  21 int
#comfunc global IInkOverlay_get_DynamicRendering                22 var
#comfunc global IInkOverlay_put_DynamicRendering                23 int
#comfunc global IInkOverlay_get_DesiredPacketDescription        24 var
#comfunc global IInkOverlay_put_DesiredPacketDescription        25 int
#comfunc global IInkOverlay_get_MouseIcon                       26 sptr
#comfunc global IInkOverlay_put_MouseIcon                       27 sptr
#comfunc global IInkOverlay_putref_MouseIcon                    28 sptr
#comfunc global IInkOverlay_get_MousePointer                    29 var
#comfunc global IInkOverlay_put_MousePointer                    30 int
#comfunc global IInkOverlay_get_EditingMode                     31 var
#comfunc global IInkOverlay_put_EditingMode                     32 int
#comfunc global IInkOverlay_get_Selection                       33 sptr
#comfunc global IInkOverlay_put_Selection                       34 sptr
#comfunc global IInkOverlay_get_EraserMode                      35 var
#comfunc global IInkOverlay_put_EraserMode                      36 int
#comfunc global IInkOverlay_get_EraserWidth                     37 var
#comfunc global IInkOverlay_put_EraserWidth                     38 int
#comfunc global IInkOverlay_get_AttachMode                      39 var
#comfunc global IInkOverlay_put_AttachMode                      40 int
#comfunc global IInkOverlay_get_Cursors                         41 sptr
#comfunc global IInkOverlay_get_MarginX                         42 var
#comfunc global IInkOverlay_put_MarginX                         43 int
#comfunc global IInkOverlay_get_MarginY                         44 var
#comfunc global IInkOverlay_put_MarginY                         45 int
#comfunc global IInkOverlay_get_Tablet                          46 sptr
#comfunc global IInkOverlay_get_SupportHighContrastInk          47 var
#comfunc global IInkOverlay_put_SupportHighContrastInk          48 int
#comfunc global IInkOverlay_get_SupportHighContrastSelectionUI  49 var
#comfunc global IInkOverlay_put_SupportHighContrastSelectionUI  50 int
#comfunc global IInkOverlay_HitTestSelection                    51 int,int,var
#comfunc global IInkOverlay_Draw                                52 sptr
#comfunc global IInkOverlay_SetGestureStatus                    53 int,int
#comfunc global IInkOverlay_GetGestureStatus                    54 int,var
#comfunc global IInkOverlay_GetWindowInputRectangle             55 sptr
#comfunc global IInkOverlay_SetWindowInputRectangle             56 sptr
#comfunc global IInkOverlay_SetAllTabletsMode                   57 int
#comfunc global IInkOverlay_SetSingleTabletIntegratedMode       58 sptr
#comfunc global IInkOverlay_GetEventInterest                    59 int,var
#comfunc global IInkOverlay_SetEventInterest                    60 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 不要)。