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

IInkPicture

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDe85662e0-379a-40d7-9b5c-757d233f9923継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

. (IInkPicture)

メソッド 59

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

vtbl 7 HRESULT get_hWnd(INT_PTR* CurrentWindow)

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

CurrentWindowINT_PTR*outインク ピクチャ コントロールのウィンドウ ハンドルを受け取るポインタである。

解説(Remarks)

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

メモ このプロパティを設定する前に、InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にする必要があります。InkCollector オブジェクトまたは InkOverlay オブジェクトを無効にするには、Enabled プロパティを VARIANT_FALSE に設定します。その後、hWnd プロパティを設定し、Enabled プロパティを VARIANT_TRUE に設定してオブジェクトを再度有効にできます。
Automation では、このプロパティは hWnd Property と呼ばれます。
vtbl 8 HRESULT get_DefaultDrawingAttributes(IInkDrawingAttributes** CurrentAttributes)

インクの描画および表示時に使用する既定の描画属性を取得または設定します。 (IInkPicture.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 9 HRESULT putref_DefaultDrawingAttributes(IInkDrawingAttributes* NewAttributes)
NewAttributesIInkDrawingAttributes*inoptional新しいストロークに適用する既定の描画属性へのポインタである。
vtbl 10 HRESULT get_Renderer(IInkRenderer** CurrentInkRenderer)

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

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

解説(Remarks)

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

vtbl 11 HRESULT putref_Renderer(IInkRenderer* NewInkRenderer)
NewInkRendererIInkRenderer*inoptional使用するインク レンダラへのポインタである。
vtbl 12 HRESULT get_Ink(IInkDisp** Ink)

InkPicture コントロールに関連付けられている InkDisp オブジェクトを取得または設定します。

InkIInkDisp**outこのコントロールに関連付けられたインク オブジェクトを受け取るポインタである。

解説(Remarks)

メモ このプロパティを設定する前に、InkPicture コントロールを無効にする必要があります。InkPicture コントロールのインク入力を無効にするには、InkEnabled プロパティを FALSE に設定します。その後、Ink プロパティを設定し、InkEnabled プロパティを TRUE に設定してコントロールを再度有効にできます。
このプロパティの詳細については、同じ機能を持つ InkOverlay オブジェクトの Ink プロパティを参照してください。
vtbl 13 HRESULT putref_Ink(IInkDisp* NewInk)
NewInkIInkDisp*inoptionalこのコントロールに関連付けるインク オブジェクトへのポインタである。
vtbl 14 HRESULT get_AutoRedraw(VARIANT_BOOL* AutoRedraw)

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

ユーザーが書き込む際にインク、ジェスチャ、またはその両方を認識するかどうかを決定する収集モードを取得または設定します。 (Get)

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

解説(Remarks)

使用できるモードの一覧については、InkCollectionMode 列挙型を参照してください。

このプロパティの詳細については、同じ機能を持つ InkCollector オブジェクトの CollectionMode プロパティを参照してください。

vtbl 18 HRESULT put_CollectionMode(InkCollectionMode Mode)

ユーザーが書き込む際にインク、ジェスチャ、またはその両方を認識するかどうかを決定する収集モードを取得または設定します。 (Put)

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

解説(Remarks)

使用できるモードの一覧については、InkCollectionMode 列挙型を参照してください。

このプロパティの詳細については、同じ機能を持つ InkCollector オブジェクトの CollectionMode プロパティを参照してください。

vtbl 19 HRESULT get_DynamicRendering(VARIANT_BOOL* Enabled)

インクが描画されると同時にレンダリングされるかどうかを指定する値を取得または設定します。 (IInkPicture.get_DynamicRendering)

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

インクが描画されると同時にレンダリングされるかどうかを指定する値を取得または設定します。 (IInkPicture.put_DynamicRendering)

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

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

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

解説(Remarks)

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

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

既定では、DesiredPacketDescription には PacketProperty オブジェクトの STR_GUID_XSTR_GUID_Y、および STR_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 22 HRESULT put_DesiredPacketDescription(VARIANT PacketGuids)

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

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

解説(Remarks)

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

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

既定では、DesiredPacketDescription には PacketProperty オブジェクトの STR_GUID_XSTR_GUID_Y、および STR_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 23 HRESULT get_MouseIcon(IPictureDisp** MouseIcon)

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

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

解説(Remarks)

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

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

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

vtbl 24 HRESULT put_MouseIcon(IPictureDisp* MouseIcon)

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

vtbl 27 HRESULT put_MousePointer(InkMousePointer MousePointer)

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

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

解説(Remarks)

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

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

vtbl 28 HRESULT get_EditingMode(InkOverlayEditingMode* EditingMode)

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

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

解説(Remarks)

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

インクの消去の詳細については、Erasing Ink with the Pen を参照してください。

vtbl 29 HRESULT put_EditingMode(InkOverlayEditingMode EditingMode)

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

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

解説(Remarks)

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

インクの消去の詳細については、Erasing Ink with the Pen を参照してください。

vtbl 30 HRESULT get_Selection(IInkStrokes** Selection)

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

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

解説(Remarks)

このプロパティの詳細については、同じ機能を持つ InkOverlay ClassSelection Property プロパティを参照してください。

vtbl 31 HRESULT put_Selection(IInkStrokes* Selection)

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

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

解説(Remarks)

このプロパティの詳細については、同じ機能を持つ InkOverlay ClassSelection Property プロパティを参照してください。

vtbl 32 HRESULT get_EraserMode(InkOverlayEraserMode* EraserMode)

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

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

解説(Remarks)

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

このプロパティの詳細については、同じ機能を持つ InkOverlay オブジェクトの EraserMode プロパティを参照してください。

vtbl 33 HRESULT put_EraserMode(InkOverlayEraserMode EraserMode)

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

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

解説(Remarks)

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

このプロパティの詳細については、同じ機能を持つ InkOverlay オブジェクトの EraserMode プロパティを参照してください。

vtbl 34 HRESULT get_EraserWidth(INT* EraserWidth)

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

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

解説(Remarks)

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

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

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

vtbl 35 HRESULT put_EraserWidth(INT newEraserWidth)

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

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

解説(Remarks)

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

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

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

vtbl 36 HRESULT putref_Picture(IPictureDisp* pPicture)
pPictureIPictureDisp*inoptionalコントロールの背景に表示する画像オブジェクトへの参照ポインタである。
vtbl 37 HRESULT put_Picture(IPictureDisp* pPicture)

InkPicture コントロールに表示するグラフィックスファイルを取得します。 (Put)

pPictureIPictureDisp*inoptionalコントロールの背景に表示する画像オブジェクトへのポインタである。
vtbl 38 HRESULT get_Picture(IPictureDisp** ppPicture)

InkPicture コントロールに表示するグラフィックスファイルを取得します。 (Get)

ppPictureIPictureDisp**outコントロールの背景に表示されている画像オブジェクトを受け取るポインタである。
vtbl 39 HRESULT put_SizeMode(InkPictureSizeMode smNewSizeMode)

InkPicture コントロールが画像の配置とサイズ変更をどのように扱うかを取得または設定します。 (Put)

smNewSizeModeInkPictureSizeModein背景画像のサイズ調整方法(等倍・拡大縮小等)を指定する InkPictureSizeMode 値である。

解説(Remarks)

このプロパティに指定できる値は InkPictureSizeMode 列挙体から取得されます。既定の IPSM_Normal モードでは、画像は InkPicture コントロールの左上隅に配置され、InkPicture コントロールに収まらない部分は切り取られます。IPSM_StretchImage 値を使用すると、画像はコントロールに合わせて引き伸ばされます。

IPSM_AutoSize 値を使用すると、コントロールは常に画像に合うようにサイズ変更されます。IPSM_CenterImage 値を使用すると、画像はコントロール内で中央に配置されます。

vtbl 40 HRESULT get_SizeMode(InkPictureSizeMode* smSizeMode)

InkPicture コントロールが画像の配置とサイズ変更をどのように扱うかを取得または設定します。 (Get)

smSizeModeInkPictureSizeMode*out現在の背景画像のサイズ調整方法を受け取る InkPictureSizeMode へのポインタである。

解説(Remarks)

このプロパティに指定できる値は InkPictureSizeMode 列挙体から取得されます。既定の IPSM_Normal モードでは、画像は InkPicture コントロールの左上隅に配置され、InkPicture コントロールに収まらない部分は切り取られます。IPSM_StretchImage 値を使用すると、画像はコントロールに合わせて引き伸ばされます。

IPSM_AutoSize 値を使用すると、コントロールは常に画像に合うようにサイズ変更されます。IPSM_CenterImage 値を使用すると、画像はコントロール内で中央に配置されます。

vtbl 41 HRESULT put_BackColor(DWORD newColor)

InkPicture コントロールの背景色を取得または設定します。 (Put)

newColorDWORDinコントロールの背景色を RGB 値で指定する。
vtbl 42 HRESULT get_BackColor(DWORD* pColor)

InkPicture コントロールの背景色を取得または設定します。 (Get)

pColorDWORD*out現在のコントロールの背景色を RGB 値として受け取るポインタである。
vtbl 43 HRESULT get_Cursors(IInkCursors** Cursors)

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

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

解説(Remarks)

カーソルは InkCollector オブジェクトに対してローカルです。

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

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

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

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

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

解説(Remarks)

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

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

vtbl 49 HRESULT get_SupportHighContrastInk(VARIANT_BOOL* Support)

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

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

システムがハイコントラストモードのときに、選択に関するすべてのユーザーインターフェイス (選択の境界ボックスおよび選択ハンドル) をハイコントラストで描画するかどうかを指定する値を取得または設定します。 (Get)

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

解説(Remarks)

このプロパティの詳細については、同じ機能を持つ InkOverlay オブジェクトの SupportHighContrastSelectionUI プロパティを参照してください。

vtbl 52 HRESULT put_SupportHighContrastSelectionUI(VARIANT_BOOL Support)

システムがハイコントラストモードのときに、選択に関するすべてのユーザーインターフェイス (選択の境界ボックスおよび選択ハンドル) をハイコントラストで描画するかどうかを指定する値を取得または設定します。 (Put)

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

解説(Remarks)

このプロパティの詳細については、同じ機能を持つ InkOverlay オブジェクトの SupportHighContrastSelectionUI プロパティを参照してください。

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

ヒットテストで選択のどの部分がヒットしたか (ヒットした場合) を指定する SelectionHitResult 列挙体のメンバーを取得します。

xINTinヒットテストの x 位置 (ピクセル単位)。
yINTinヒットテストの y 位置 (ピクセル単位)。
SelAreaSelectionHitResult*outSelectionHitResult 列挙体の値。

解説(Remarks)

このメソッドの詳細については、同じ機能を持つ InkOverlay オブジェクトの HitTestSelection メソッドを参照してください。

vtbl 54 HRESULT SetGestureStatus(InkApplicationGesture Gesture, VARIANT_BOOL Listen)

既知のジェスチャに対するオブジェクトまたはコントロールの関心を変更します。 (IInkPicture.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 55 HRESULT GetGestureStatus(InkApplicationGesture Gesture, VARIANT_BOOL* Listening)

InkPicture コントロールが特定のアプリケーションジェスチャに関心を持っているかどうかを示す値を取得します。

GestureInkApplicationGestureinステータスを取得する対象のジェスチャ。
ListeningVARIANT_BOOL*outVARIANT_TRUE は、InkPicture コントロールがそのジェスチャに関心を持っており、ジェスチャが認識されたときに Gesture Event が発生することを示します。VARIANT_FALSE は、InkPicture コントロールがそのジェスチャに関心を持っておらず、ジェスチャとして認識されたストロークが IInkStrokeDisp オブジェクトとして残ることを示します。

戻り値

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

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

解説(Remarks)

gesture パラメーターに IAG_AllGestures が指定されている場合、このメソッドは例外をスローします。

特定のジェスチャに対する InkPicture コントロールの関心を設定するには、SetGestureStatus Method を呼び出します。

メモ 既定では、InkPicture コントロールはどのアプリケーションジェスチャにも関心を持っていません。
vtbl 56 HRESULT GetWindowInputRectangle(IInkRectangle** WindowInputRectangle)

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

WindowInputRectangleIInkRectangle**inoutインクが描画される InkRectangle 型の矩形を取得します。

戻り値

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

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

解説(Remarks)

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

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

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

vtbl 57 HRESULT SetWindowInputRectangle(IInkRectangle* WindowInputRectangle)

インクが描画されるウィンドウ矩形をピクセル単位で変更します。

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 58 HRESULT SetAllTabletsMode(VARIANT_BOOL UseMouseForInput)

インクコレクター (InkCollector、InkOverlay、または InkPicture) が、Tablet PC に接続されている任意のタブレットからインクを収集できるようにします。 (IInkPicture.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) プロパティを VARIANT_TRUE に設定してオブジェクトまたはコントロールを再度有効にします。
インクコレクターが単一のタブレットによるインク収集からすべてのタブレットによるインク収集に切り替わると、Cursors プロパティは空のコレクションに設定されます。
メモ SetAllTabletsMode メソッドを useMouse パラメーターに VARIANT_TRUE を指定して呼び出すと、マウスが入力デバイスとして使用されます。その後 SetAllTabletsMode メソッドを useMouse パラメーターに VARIANT_FALSE を指定して呼び出しても、マウスは Cursors プロパティから削除されません。
vtbl 59 HRESULT SetSingleTabletIntegratedMode(IInkTablet* Tablet)

インクコレクター (InkCollector、InkOverlay、または InkPicture) が 1 つのタブレットからのみインクを収集できるようにします。他のタブレットからのインクは、インクコレクターによって無視されます。 (IInkPicture.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 60 HRESULT GetEventInterest(InkCollectorEventInterest EventId, VARIANT_BOOL* Listen)

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

EventIdInkCollectorEventInterestinインクコレクターが関心のレベルを指定する対象のイベント。
ListenVARIANT_BOOL*out指定したイベントに対する関心が送信されている場合は VARIANT_TRUE、それ以外の場合は VARIANT_FALSE

戻り値

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

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

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

EventIdInkCollectorEventInterestinリッスンする対象のイベント。eventID に指定できる値は InkCollectorEventInterest 列挙型に含まれています。
ListenVARIANT_BOOLinイベントが使用されていることを示す場合は VARIANT_TRUE、イベントが無視されていることを示す場合は VARIANT_FALSE

戻り値

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

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

解説(Remarks)

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

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

vtbl 62 HRESULT get_InkEnabled(VARIANT_BOOL* Collecting)

InkPicture コントロールがペン入力 (空中パケット、カーソルが範囲内に入るイベントなど) を収集するかどうかを指定する値を取得または設定します。 (Get)

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

解説(Remarks)

InkPicture コントロールは、Windows Vista、Microsoft Windows XP Tablet PC Edition、または Windows XP Tablet PC Edition Software Development Kit (SDK) がインストールされた Windows 2000、Windows Server 2003、Windows XP の各エディションでインクを収集します。ただし、手書き認識が行われるのは、Windows Vista、Windows XP Tablet PC Edition、または Recognizer Pack がインストールされている場合のみです。

Windows XP Tablet PC Edition 以外の Windows 2000、Windows Server 2003、Windows XP の各エディションでは、Tablet PC SDK がインストールされていない場合、InkEnabled プロパティは常に FALSE になります。

有効なオブジェクトのウィンドウ入力矩形 (コンストラクター、または SetWindowInputRectangle Method で設定) が、別の有効なオブジェクトのウィンドウ入力矩形と重なっている場合、E_INK_OVERLAPPING_INPUT_RECT エラーが返されます。

メモ 任意の時点で入力矩形のうち 1 つだけが有効である限り、重なりが生じてもエラーにはなりません。
InkPicture コントロールが有効になっていない間は、イベントを受け取りません。

コンテナーである InkPicture コントロールの Enabled プロパティが VARIANT_FALSE に設定されると、そこに含まれるすべてのコントロールも無効になります。

InkPicture コントロールがインクを収集している間 (CollectingInk Property プロパティが VARIANT_TRUE の間) は、このプロパティを VARIANT_FALSE に設定できません。

最良の結果を得るには、アプリケーションの終了時に Enabled プロパティを VARIANT_FALSE に設定してください。

コントロールの特定のプロパティやメソッドを設定または呼び出す前に、このプロパティを VARIANT_FALSE に設定する必要があります。対象のプロパティを変更したり、対象のメソッドを呼び出したりしようとすると、エラーが発生します。次のプロパティおよびメソッドは、先に Enabled プロパティを VARIANT_FALSE に設定しない限り、設定または呼び出しができません。

  1. プロパティ:
  2. メソッド:
vtbl 63 HRESULT put_InkEnabled(VARIANT_BOOL Collecting)

InkPicture コントロールがペン入力 (空中パケット、カーソルが範囲内に入るイベントなど) を収集するかどうかを指定する値を取得または設定します。 (Put)

CollectingVARIANT_BOOLinインクの収集を有効にするかどうかを指定する VARIANT_BOOL である。

解説(Remarks)

InkPicture コントロールは、Windows Vista、Microsoft Windows XP Tablet PC Edition、または Windows XP Tablet PC Edition Software Development Kit (SDK) がインストールされた Windows 2000、Windows Server 2003、Windows XP の各エディションでインクを収集します。ただし、手書き認識が行われるのは、Windows Vista、Windows XP Tablet PC Edition、または Recognizer Pack がインストールされている場合のみです。

Windows XP Tablet PC Edition 以外の Windows 2000、Windows Server 2003、Windows XP の各エディションでは、Tablet PC SDK がインストールされていない場合、InkEnabled プロパティは常に FALSE になります。

有効なオブジェクトのウィンドウ入力矩形 (コンストラクター、または SetWindowInputRectangle Method で設定) が、別の有効なオブジェクトのウィンドウ入力矩形と重なっている場合、E_INK_OVERLAPPING_INPUT_RECT エラーが返されます。

メモ 任意の時点で入力矩形のうち 1 つだけが有効である限り、重なりが生じてもエラーにはなりません。
InkPicture コントロールが有効になっていない間は、イベントを受け取りません。

コンテナーである InkPicture コントロールの Enabled プロパティが VARIANT_FALSE に設定されると、そこに含まれるすべてのコントロールも無効になります。

InkPicture コントロールがインクを収集している間 (CollectingInk Property プロパティが VARIANT_TRUE の間) は、このプロパティを VARIANT_FALSE に設定できません。

最良の結果を得るには、アプリケーションの終了時に Enabled プロパティを VARIANT_FALSE に設定してください。

コントロールの特定のプロパティやメソッドを設定または呼び出す前に、このプロパティを VARIANT_FALSE に設定する必要があります。対象のプロパティを変更したり、対象のメソッドを呼び出したりしようとすると、エラーが発生します。次のプロパティおよびメソッドは、先に Enabled プロパティを VARIANT_FALSE に設定しない限り、設定または呼び出しができません。

  1. プロパティ:
  2. メソッド:
vtbl 64 HRESULT get_Enabled(VARIANT_BOOL* pbool)

InkPicture コントロールがユーザーによって生成されたイベントに応答できるかどうかを決定する値を取得または設定します。 (Get)

pboolVARIANT_BOOL*outコントロール自体が有効かどうかを受け取る VARIANT_BOOL へのポインタである。

解説(Remarks)

メモ このプロパティは、InkOverlay および InkCollector オブジェクトの Enabled プロパティとは異なります。このプロパティは InkEnabled プロパティと同等です。
vtbl 65 HRESULT put_Enabled(VARIANT_BOOL vbool)

InkPicture コントロールがユーザーによって生成されたイベントに応答できるかどうかを決定する値を取得または設定します。 (Put)

vboolVARIANT_BOOLinコントロール自体を有効にするかどうかを指定する VARIANT_BOOL である。

解説(Remarks)

メモ このプロパティは、InkOverlay および InkCollector オブジェクトの Enabled プロパティとは異なります。このプロパティは InkEnabled プロパティと同等です。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IInkPicture "{E85662E0-379A-40D7-9B5C-757D233F9923}"
#usecom global IInkPicture IID_IInkPicture "{04A1E553-FE36-4FDE-865E-344194E69424}"
#comfunc global IInkPicture_get_hWnd                            7 var
#comfunc global IInkPicture_get_DefaultDrawingAttributes        8 sptr
#comfunc global IInkPicture_putref_DefaultDrawingAttributes     9 sptr
#comfunc global IInkPicture_get_Renderer                        10 sptr
#comfunc global IInkPicture_putref_Renderer                     11 sptr
#comfunc global IInkPicture_get_Ink                             12 sptr
#comfunc global IInkPicture_putref_Ink                          13 sptr
#comfunc global IInkPicture_get_AutoRedraw                      14 var
#comfunc global IInkPicture_put_AutoRedraw                      15 int
#comfunc global IInkPicture_get_CollectingInk                   16 var
#comfunc global IInkPicture_get_CollectionMode                  17 var
#comfunc global IInkPicture_put_CollectionMode                  18 int
#comfunc global IInkPicture_get_DynamicRendering                19 var
#comfunc global IInkPicture_put_DynamicRendering                20 int
#comfunc global IInkPicture_get_DesiredPacketDescription        21 var
#comfunc global IInkPicture_put_DesiredPacketDescription        22 int
#comfunc global IInkPicture_get_MouseIcon                       23 sptr
#comfunc global IInkPicture_put_MouseIcon                       24 sptr
#comfunc global IInkPicture_putref_MouseIcon                    25 sptr
#comfunc global IInkPicture_get_MousePointer                    26 var
#comfunc global IInkPicture_put_MousePointer                    27 int
#comfunc global IInkPicture_get_EditingMode                     28 var
#comfunc global IInkPicture_put_EditingMode                     29 int
#comfunc global IInkPicture_get_Selection                       30 sptr
#comfunc global IInkPicture_put_Selection                       31 sptr
#comfunc global IInkPicture_get_EraserMode                      32 var
#comfunc global IInkPicture_put_EraserMode                      33 int
#comfunc global IInkPicture_get_EraserWidth                     34 var
#comfunc global IInkPicture_put_EraserWidth                     35 int
#comfunc global IInkPicture_putref_Picture                      36 sptr
#comfunc global IInkPicture_put_Picture                         37 sptr
#comfunc global IInkPicture_get_Picture                         38 sptr
#comfunc global IInkPicture_put_SizeMode                        39 int
#comfunc global IInkPicture_get_SizeMode                        40 var
#comfunc global IInkPicture_put_BackColor                       41 int
#comfunc global IInkPicture_get_BackColor                       42 var
#comfunc global IInkPicture_get_Cursors                         43 sptr
#comfunc global IInkPicture_get_MarginX                         44 var
#comfunc global IInkPicture_put_MarginX                         45 int
#comfunc global IInkPicture_get_MarginY                         46 var
#comfunc global IInkPicture_put_MarginY                         47 int
#comfunc global IInkPicture_get_Tablet                          48 sptr
#comfunc global IInkPicture_get_SupportHighContrastInk          49 var
#comfunc global IInkPicture_put_SupportHighContrastInk          50 int
#comfunc global IInkPicture_get_SupportHighContrastSelectionUI  51 var
#comfunc global IInkPicture_put_SupportHighContrastSelectionUI  52 int
#comfunc global IInkPicture_HitTestSelection                    53 int,int,var
#comfunc global IInkPicture_SetGestureStatus                    54 int,int
#comfunc global IInkPicture_GetGestureStatus                    55 int,var
#comfunc global IInkPicture_GetWindowInputRectangle             56 sptr
#comfunc global IInkPicture_SetWindowInputRectangle             57 sptr
#comfunc global IInkPicture_SetAllTabletsMode                   58 int
#comfunc global IInkPicture_SetSingleTabletIntegratedMode       59 sptr
#comfunc global IInkPicture_GetEventInterest                    60 int,var
#comfunc global IInkPicture_SetEventInterest                    61 int,int
#comfunc global IInkPicture_get_InkEnabled                      62 var
#comfunc global IInkPicture_put_InkEnabled                      63 int
#comfunc global IInkPicture_get_Enabled                         64 var
#comfunc global IInkPicture_put_Enabled                         65 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。