IInkCollector
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
。 (IInkCollector)
解説(Remarks)
透明なコントロール (WS_EX_TRANSPARENT プロパティが設定された GroupBox など) の背後に InkCollector コントロールを作成すると、InkCollector はインクを収集できなくなります。
メソッド 40
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
インクが描画されるウィンドウのハンドル値を取得または設定します。(IInkCollector.get_hWnd)
| CurrentWindow | INT_PTR* | out | インクを収集している現在のウィンドウ ハンドルを受け取るポインタである。 |
解説(Remarks)
ウィンドウが 2 つ以上存在する場合、このプロパティによってどのウィンドウがインクを収集するかを指定できます。
インクが描画されるウィンドウのハンドル値を取得または設定します。(IInkCollector.put_hWnd)
| NewWindow | INT_PTR | in | インク収集の対象とするウィンドウ ハンドルを指定する。 |
解説(Remarks)
ウィンドウが 2 つ以上存在する場合、このプロパティによってどのウィンドウがインクを収集するかを指定できます。
InkCollector オブジェクトがペン入力 (空中でのパケット、カーソルの範囲内イベントなど) を収集するかどうかを指定する値を取得または設定します。(Get)
| Collecting | VARIANT_BOOL* | out | インク コレクタが有効(収集可能)かどうかを受け取る VARIANT_BOOL へのポインタである。 |
解説(Remarks)
有効なオブジェクトのウィンドウ入力矩形 (コンストラクター、または SetWindowInputRectangle メソッドで設定します) が、別の有効なオブジェクトのウィンドウ入力矩形と重なる場合、E_INK_OVERLAPPING_INPUT_RECT エラーが返されます。任意の時点で有効になっている入力矩形が 1 つだけであれば、重なっていてもエラーにはなりません。
オブジェクトが有効でない間は、イベントを受け取りません。
コンテナー コントロールの Enabled プロパティが FALSE に設定されている場合、そのコンテナーに含まれるすべてのコントロールも無効になります。
オブジェクトがインクを収集している間 (CollectingInk プロパティが TRUE の間) は、Enabled プロパティを FALSE に設定できません。
アプリケーションの終了時には、Enabled を FALSE に設定することをお勧めします。
プロパティ
メソッドInkCollector オブジェクトがペン入力 (空中でのパケット、カーソルの範囲内イベントなど) を収集するかどうかを指定する値を取得または設定します。(Put)
| Collecting | VARIANT_BOOL | in | インク コレクタを有効にするかどうかを指定する VARIANT_BOOL である。 |
解説(Remarks)
有効なオブジェクトのウィンドウ入力矩形 (コンストラクター、または SetWindowInputRectangle メソッドで設定します) が、別の有効なオブジェクトのウィンドウ入力矩形と重なる場合、E_INK_OVERLAPPING_INPUT_RECT エラーが返されます。任意の時点で有効になっている入力矩形が 1 つだけであれば、重なっていてもエラーにはなりません。
オブジェクトが有効でない間は、イベントを受け取りません。
コンテナー コントロールの Enabled プロパティが FALSE に設定されている場合、そのコンテナーに含まれるすべてのコントロールも無効になります。
オブジェクトがインクを収集している間 (CollectingInk プロパティが TRUE の間) は、Enabled プロパティを FALSE に設定できません。
アプリケーションの終了時には、Enabled を FALSE に設定することをお勧めします。
プロパティ
メソッドインクの描画および表示時に使用する既定の描画属性を取得または設定します。(IInkCollector.get_DefaultDrawingAttributes)
| CurrentAttributes | IInkDrawingAttributes** | 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 メソッドを呼び出します。
インクの描画および表示時に使用する既定の描画属性を取得または設定します。(IInkCollector.putref_DefaultDrawingAttributes)
| NewAttributes | IInkDrawingAttributes* | 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 メソッドを呼び出します。
インクの描画に使用される InkRenderer オブジェクトを取得または設定します。(IInkCollector.get_Renderer)
| CurrentInkRenderer | IInkRenderer** | out | 現在使用されているインク レンダラを受け取るポインタである。 |
解説(Remarks)
特定のウィンドウ メッセージを処理している間に InkCollector に関連付けられた Renderer を変更すると、関数が再入呼び出しされ、予期しない結果を招くことがあります。たとえば、メッセージ ハンドラー内で別の Renderer に切り替えたり、その変換を変更したりすると、再入呼び出しが発生する可能性があります。これは次のメッセージに影響します。WM_ACTIVATE、WM_ACTIVATEAPP、WM_NCACTIVATE、WM_PAINT、wParam に SC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt-Tab または Alt-Esc のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。
インクの描画に使用される InkRenderer オブジェクトを取得または設定します。
| NewInkRenderer | IInkRenderer* | inoptional | 使用するインク レンダラへのポインタである。 |
解説(Remarks)
特定のウィンドウ メッセージを処理している間に InkCollector に関連付けられた Renderer を変更すると、関数が再入呼び出しされ、予期しない結果を招くことがあります。たとえば、メッセージ ハンドラー内で別の Renderer に切り替えたり、その変換を変更したりすると、再入呼び出しが発生する可能性があります。これは次のメッセージに影響します。WM_ACTIVATE、WM_ACTIVATEAPP、WM_NCACTIVATE、WM_PAINT、wParam に SC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt-Tab または Alt-Esc のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。
InkCollector オブジェクトまたは InkOverlay オブジェクトに関連付けられている InkDisp オブジェクトを取得または設定します。(IInkCollector.get_Ink)
| Ink | IInkDisp** | out | このコレクタが収集したインク オブジェクトを受け取るポインタである。 |
解説(Remarks)
InkCollector オブジェクトまたは InkOverlay オブジェクトに関連付けられている InkDisp オブジェクトを取得または設定します。
| NewInk | IInkDisp* | inoptional | このコレクタに関連付けるインク オブジェクトへのポインタである。 |
解説(Remarks)
ウィンドウが無効化されたときにインク コレクターがインクを再描画するかどうかを指定する値を取得または設定します。(IInkCollector.get_AutoRedraw)
| AutoRedraw | VARIANT_BOOL* | out | ウィンドウの再描画時にインクを自動再描画するかどうかを受け取る VARIANT_BOOL へのポインタである。 |
解説(Remarks)
VARIANT_TRUE の場合、ウィンドウが無効化されたときにインク コレクターはインクを再描画します。たとえば、ウィンドウを最小化してから元に戻すと、インクは自動的に再描画されます。VARIANT_FALSE の場合、ウィンドウが無効化されてもインク コレクターはインクを再描画しません。たとえば、ウィンドウを最小化してから元に戻すと、インクは画面から消えます。
AutoRedraw が VARIANT_FALSE の場合でも、DynamicRendering プロパティが false でない限り、書き込み中はインクが表示されます。
アプリケーションが独自の描画を行う場合や、描画の問題の影響を受けやすい場合は、再描画を自分で処理し、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールの AutoRedraw プロパティを VARIANT_FALSE に設定できます。再描画の処理には次の表のイベントを使用します。
| オブジェクトまたはコントロール | イベント |
|---|---|
| InkCollector オブジェクト | 基になるコントロールの Invalidated イベントと Paint イベント。 |
| InkOverlay オブジェクト | 基になるコントロールの Invalidated イベントと Paint イベント。 |
| InkPicture コントロール | InkPicture コントロールが継承した Invalidated イベントと Paint イベント。 |
ウィンドウが無効化されたときにインク コレクターがインクを再描画するかどうかを指定する値を取得または設定します。(IInkCollector.put_AutoRedraw)
| AutoRedraw | VARIANT_BOOL | in | ウィンドウの再描画時にインクを自動再描画するかどうかを指定する VARIANT_BOOL である。 |
解説(Remarks)
VARIANT_TRUE の場合、ウィンドウが無効化されたときにインク コレクターはインクを再描画します。たとえば、ウィンドウを最小化してから元に戻すと、インクは自動的に再描画されます。VARIANT_FALSE の場合、ウィンドウが無効化されてもインク コレクターはインクを再描画しません。たとえば、ウィンドウを最小化してから元に戻すと、インクは画面から消えます。
AutoRedraw が VARIANT_FALSE の場合でも、DynamicRendering プロパティが false でない限り、書き込み中はインクが表示されます。
アプリケーションが独自の描画を行う場合や、描画の問題の影響を受けやすい場合は、再描画を自分で処理し、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールの AutoRedraw プロパティを VARIANT_FALSE に設定できます。再描画の処理には次の表のイベントを使用します。
| オブジェクトまたはコントロール | イベント |
|---|---|
| InkCollector オブジェクト | 基になるコントロールの Invalidated イベントと Paint イベント。 |
| InkOverlay オブジェクト | 基になるコントロールの Invalidated イベントと Paint イベント。 |
| InkPicture コントロール | InkPicture コントロールが継承した Invalidated イベントと Paint イベント。 |
インク コレクター (InkCollector、InkOverlay、または InkPicture) に現在インクが描画されているかどうかを指定する値を取得します。(IInkCollector.get_CollectingInk)
| Collecting | VARIANT_BOOL* | out | 現在インクを収集中(ストローク描画中)かどうかを受け取る VARIANT_BOOL へのポインタである。 |
解説(Remarks)
Stroke イベントを監視する代わりに、CollectingInk プロパティを使用してインク コレクターにインクが描画されているかどうかを確認できます。
ユーザーの書き込み時に、インク、ジェスチャ、またはその両方のいずれを認識するかを決定する収集モードを取得または設定します。(IInkCollector.get_CollectionMode)
| Mode | InkCollectionMode* | out | 現在の収集モード(インク・ジェスチャ・両方)を受け取る InkCollectionMode へのポインタである。 |
解説(Remarks)
使用できるモードの一覧については、InkCollectionMode 列挙型を参照してください。ただし、Microsoft Windows XP Tablet PC Edition Software Development Kit (SDK) がインストールされていても認識エンジンがインストールされていないシステムで CollectionMode プロパティを使用する場合、モードを GestureOnly または InkAndGesture に設定することはできません。
InkOnly モード
- インクのみが収集され、ジェスチャは収集されません。
- Gesture イベントへの関心が FALSE に設定されます (その他のイベントへの関心はそのまま維持されます)。
GestureOnly モード
- ジェスチャのみが収集され、インクは収集されません。ストロークはジェスチャ認識エンジンに送信された後に削除されます。
- Gesture イベントへの関心が TRUE に設定されます (その他のイベントへの関心はそのまま維持されます)。
- インク コレクターは、ストロークおよびパケットに関連する次のイベントを発生させません。CursorDown、Stroke、NewPackets、NewInAirPackets の各イベント。
- カーソル関連のイベントは発生します。
- インクは常に削除されます。
InkAndGesture モード
- インクとジェスチャの両方が収集されます。
- 単一ストロークのジェスチャのみが認識されます。
- Gesture イベントへの関心が TRUE に設定されます (その他のイベントへの関心はそのまま維持されます)。
- 最初に Gesture イベントが発生し、ジェスチャを受け入れるかキャンセルするかを選択できます。ジェスチャをキャンセルするには、Cancel パラメーターを TRUE に設定します。ジェスチャをキャンセルすると、インク コレクターは強制的にインクを収集します。
CollectionMode が InkAndGesture に設定され、かつ (SetGestureStatus メソッドの呼び出しによって) 特定のジェスチャに対するオブジェクトやコントロールの関心が設定されている場合、望ましくない動作が発生することがあります。特定のジェスチャに似たインクを描画し、そのジェスチャが認識エンジンの代替候補の一覧に含まれていると、そのジェスチャが最上位の候補でなくても Gesture イベントが発生し、インクが消えてしまいます。インクが消えるのを防ぎ、ジェスチャの収集をキャンセルするには、関心のないイベントであれば Cancel パラメーターを TRUE に設定します。
CollectionMode が GestureOnly に設定されている場合、ユーザーがジェスチャを行ってから Gesture イベントが発生するまでのタイムアウトは固定値であり、プログラムで変更することはできません。ジェスチャの認識は InkAndGesture モードの方が高速です。InkAndGesture モードでインクの収集を防ぐには、次のようにします。
- CollectionMode プロパティを InkAndGesture に設定します。
- Stroke イベントでストロークを削除します。
- Gesture イベントでジェスチャを処理します。
- ジェスチャ中にインクが流れないように、DynamicRendering を FALSE に設定します。
ユーザーの書き込み時に、インク、ジェスチャ、またはその両方のいずれを認識するかを決定する収集モードを取得または設定します。(IInkCollector.put_CollectionMode)
| Mode | InkCollectionMode | in | 設定する収集モード(インク・ジェスチャ・両方)を指定する InkCollectionMode 値である。 |
解説(Remarks)
使用できるモードの一覧については、InkCollectionMode 列挙型を参照してください。ただし、Microsoft Windows XP Tablet PC Edition Software Development Kit (SDK) がインストールされていても認識エンジンがインストールされていないシステムで CollectionMode プロパティを使用する場合、モードを GestureOnly または InkAndGesture に設定することはできません。
InkOnly モード
- インクのみが収集され、ジェスチャは収集されません。
- Gesture イベントへの関心が FALSE に設定されます (その他のイベントへの関心はそのまま維持されます)。
GestureOnly モード
- ジェスチャのみが収集され、インクは収集されません。ストロークはジェスチャ認識エンジンに送信された後に削除されます。
- Gesture イベントへの関心が TRUE に設定されます (その他のイベントへの関心はそのまま維持されます)。
- インク コレクターは、ストロークおよびパケットに関連する次のイベントを発生させません。CursorDown、Stroke、NewPackets、NewInAirPackets の各イベント。
- カーソル関連のイベントは発生します。
- インクは常に削除されます。
InkAndGesture モード
- インクとジェスチャの両方が収集されます。
- 単一ストロークのジェスチャのみが認識されます。
- Gesture イベントへの関心が TRUE に設定されます (その他のイベントへの関心はそのまま維持されます)。
- 最初に Gesture イベントが発生し、ジェスチャを受け入れるかキャンセルするかを選択できます。ジェスチャをキャンセルするには、Cancel パラメーターを TRUE に設定します。ジェスチャをキャンセルすると、インク コレクターは強制的にインクを収集します。
CollectionMode が InkAndGesture に設定され、かつ (SetGestureStatus メソッドの呼び出しによって) 特定のジェスチャに対するオブジェクトやコントロールの関心が設定されている場合、望ましくない動作が発生することがあります。特定のジェスチャに似たインクを描画し、そのジェスチャが認識エンジンの代替候補の一覧に含まれていると、そのジェスチャが最上位の候補でなくても Gesture イベントが発生し、インクが消えてしまいます。インクが消えるのを防ぎ、ジェスチャの収集をキャンセルするには、関心のないイベントであれば Cancel パラメーターを TRUE に設定します。
CollectionMode が GestureOnly に設定されている場合、ユーザーがジェスチャを行ってから Gesture イベントが発生するまでのタイムアウトは固定値であり、プログラムで変更することはできません。ジェスチャの認識は InkAndGesture モードの方が高速です。InkAndGesture モードでインクの収集を防ぐには、次のようにします。
- CollectionMode プロパティを InkAndGesture に設定します。
- Stroke イベントでストロークを削除します。
- Gesture イベントでジェスチャを処理します。
- ジェスチャ中にインクが流れないように、DynamicRendering を FALSE に設定します。
インクを描画中にレンダリングするかどうかを指定する値を取得または設定します。(IInkCollector.get_DynamicRendering)
| Enabled | VARIANT_BOOL* | out | 描画中にインクをリアルタイム表示する動的レンダリングが有効かどうかを受け取る VARIANT_BOOL へのポインタである。 |
インクを描画中にレンダリングするかどうかを指定する値を取得または設定します。(IInkCollector.put_DynamicRendering)
| Enabled | VARIANT_BOOL | in | 描画中の動的レンダリングを有効にするかどうかを指定する VARIANT_BOOL である。 |
InkCollector の目的のパケット記述を取得または設定します。(IInkCollector.get_DesiredPacketDescription)
| PacketGuids | VARIANT* | out | 収集するパケットに含めたいプロパティの GUID 配列を受け取る VARIANT へのポインタである。 |
解説(Remarks)
この記述は、PacketProperty オブジェクトのグローバル一意識別子 (GUID) の配列です。
マルチタブレット モードでは、これはすべてのタブレット デバイスに対するパケット記述になります。いずれかのデバイスが特定のパケット記述プロパティをサポートしていない場合、そのプロパティのデータは返されません。
既定では、DesiredPacketDescription には PacketProperty オブジェクトの STR_GUID_X、STR_GUID_Y、STR_GUID_NORMALPRESSURE が含まれます。DesiredPacketDescription にそれ以外の値 (たとえば STR_GUID_BUTTONPRESSURE のみ) を設定した場合でも、STR_GUID_X と STR_GUID_Y が追加されます。つまり、DesiredPacketDescription を取得すると {ButtonPressure} ではなく {X,Y,ButtonPressure} が返されます。
DesiredPacketDescription に STR_GUID_PAKETSTATUS を含む値を設定すると、パケット ステータスは 3 番目の位置に追加されます。たとえば、DesiredPacketDescription に (a, b, c, d, PacketStatus, e, f) を設定した場合、DesiredPacketDescription を取得すると結果は (X, Y, PacketStatus, a, b, c, d, e, f) になります。
このプロパティへの変更は、Enabled プロパティが FALSE から TRUE に変わるまで、受信するパケット データには反映されません。
InkCollector の目的のパケット記述を取得または設定します。(IInkCollector.put_DesiredPacketDescription)
| PacketGuids | VARIANT | in | 収集するパケットに含めたいプロパティの GUID 配列を格納した VARIANT である。 |
解説(Remarks)
この記述は、PacketProperty オブジェクトのグローバル一意識別子 (GUID) の配列です。
マルチタブレット モードでは、これはすべてのタブレット デバイスに対するパケット記述になります。いずれかのデバイスが特定のパケット記述プロパティをサポートしていない場合、そのプロパティのデータは返されません。
既定では、DesiredPacketDescription には PacketProperty オブジェクトの STR_GUID_X、STR_GUID_Y、STR_GUID_NORMALPRESSURE が含まれます。DesiredPacketDescription にそれ以外の値 (たとえば STR_GUID_BUTTONPRESSURE のみ) を設定した場合でも、STR_GUID_X と STR_GUID_Y が追加されます。つまり、DesiredPacketDescription を取得すると {ButtonPressure} ではなく {X,Y,ButtonPressure} が返されます。
DesiredPacketDescription に STR_GUID_PAKETSTATUS を含む値を設定すると、パケット ステータスは 3 番目の位置に追加されます。たとえば、DesiredPacketDescription に (a, b, c, d, PacketStatus, e, f) を設定した場合、DesiredPacketDescription を取得すると結果は (X, Y, PacketStatus, a, b, c, d, e, f) になります。
このプロパティへの変更は、Enabled プロパティが FALSE から TRUE に変わるまで、受信するパケット データには反映されません。
カスタムのマウス アイコンを取得または設定します。(IInkCollector.get_MouseIcon)
| MouseIcon | IPictureDisp** | out | マウス ポインタにカスタム アイコンとして使用される画像を受け取るポインタである。 |
解説(Remarks)
[propputref] 関数は NULL 参照を受け付けます。その場合は S_OK が返されます。
このプロパティは、MousePointer プロパティが IMP_Custom に設定されている場合に使用されるカスタム アイコンを提供します。
MouseIcon プロパティを使用すると、カーソル ファイルまたはアイコン ファイルのいずれかを読み込むことができます。MouseIcon プロパティにより、アプリケーションは任意のサイズおよび任意のホット スポット位置を持つカスタム カーソルを利用できます。
| MouseIcon | IPictureDisp* | inoptional | マウス ポインタとして使用するカスタム アイコン画像へのポインタである。 |
カスタムのマウス アイコンを取得または設定します。
| MouseIcon | IPictureDisp* | inoptional | マウス ポインタとして使用するカスタム アイコン画像への参照ポインタである。 |
解説(Remarks)
[propputref] 関数は NULL 参照を受け付けます。その場合は S_OK が返されます。
このプロパティは、MousePointer プロパティが IMP_Custom に設定されている場合に使用されるカスタム アイコンを提供します。
MouseIcon プロパティを使用すると、カーソル ファイルまたはアイコン ファイルのいずれかを読み込むことができます。MouseIcon プロパティにより、アプリケーションは任意のサイズおよび任意のホット スポット位置を持つカスタム カーソルを利用できます。
表示されるマウス ポインターの種類を示す値を取得または設定します。(IInkCollector.get_MousePointer)
| MousePointer | InkMousePointer* | out | 現在のマウス ポインタの種類を受け取る InkMousePointer へのポインタである。 |
解説(Remarks)
MousePointer プロパティを IMP_Default に設定した場合、マウス カーソルの設定は現在のカーソルの描画属性に基づきます。インク コレクターが無効な場合、マウス カーソルの設定は基になるウィンドウのマウス カーソルの DrawingAttributes プロパティに基づきます。MousePointer プロパティが IMP_Custom に設定され、MouseIcon プロパティが NULL の場合、インク コレクターはマウス カーソルの設定を処理しなくなります。それ以外の設定 (MousePointer プロパティが IMP_Default かつ MouseIcon プロパティが NULL の場合以外) では、マウス カーソルは強制的に現在の設定が使用されます。
フォームやダイアログ ボックス上のコントロールの上をマウス ポインターが通過する際に機能の変化を示したい場合に、このプロパティを使用できます。IMP_Hourglass の設定は、処理や操作が完了するまでユーザーが待つ必要があることを示すのに便利です。
表示されるマウス ポインターの種類を示す値を取得または設定します。(IInkCollector.put_MousePointer)
| MousePointer | InkMousePointer | in | 設定するマウス ポインタの種類を指定する InkMousePointer 値である。 |
解説(Remarks)
MousePointer プロパティを IMP_Default に設定した場合、マウス カーソルの設定は現在のカーソルの描画属性に基づきます。インク コレクターが無効な場合、マウス カーソルの設定は基になるウィンドウのマウス カーソルの DrawingAttributes プロパティに基づきます。MousePointer プロパティが IMP_Custom に設定され、MouseIcon プロパティが NULL の場合、インク コレクターはマウス カーソルの設定を処理しなくなります。それ以外の設定 (MousePointer プロパティが IMP_Default かつ MouseIcon プロパティが NULL の場合以外) では、マウス カーソルは強制的に現在の設定が使用されます。
フォームやダイアログ ボックス上のコントロールの上をマウス ポインターが通過する際に機能の変化を示したい場合に、このプロパティを使用できます。IMP_Hourglass の設定は、処理や操作が完了するまでユーザーが待つ必要があることを示すのに便利です。
インクを入力する領域で使用できるカーソルのコレクションを取得します。各カーソルは、ペンやその他のインク入力デバイスの先端に対応します。(IInkCollector.get_Cursors)
| Cursors | IInkCursors** | out | このコレクタで使用可能なカーソルのコレクションを受け取るポインタである。 |
解説(Remarks)
カーソルは InkCollector オブジェクトごとに固有です。
InkCollector が新たに検出したカーソルは、返されるカーソルのコレクションに追加されます。ただし、返されるカーソルは InkCollector が検出した順に並んでいるとは限りません。
InkCollector でマウスが入力デバイスとして有効になっている場合 (SetAllTabletsMode メソッドの useMouse パラメーターが TRUE の場合)、マウスは InkCollector がペンなどの他のカーソルを検出した後に IInkCursors コレクションに追加されます。これは、ペンもマウスと同様に動作するためです。
- タブレット モードが変更された場合 (たとえば SetSingleTabletIntegratedMode から SetAllTabletsMode へ)。
- SetSingleTabletIntegratedMode メソッドが呼び出された場合。
ウィンドウ矩形の周囲の x 軸方向のマージンを画面座標で取得または設定します。このマージンはインク ウィンドウの端の周囲にバッファーを提供します。(IInkCollector.get_MarginX)
| MarginX | INT* | out | 入力領域の水平方向のマージン(ピクセル)を受け取るポインタである。 |
解説(Remarks)
このプロパティは主に非統合型のタブレット デバイスで使用されます。画面と 1 対 1 で対応しないデバイスに書き込む際、このバッファーによってユーザーに誤差の余裕が与えられます。
マージンは画面座標で指定します。正のマージンはコンテキストの外側に広がり、負のマージンはコンテキストの内側に広がり、0 の場合はマージンなしになります。ストロークがマージン内で開始された場合、インクは収集されます。この動作によってインクがクリップされることはありません。オブジェクトまたはコントロールのコンテキストは、GetWindowInputRectangle メソッドで取得されるウィンドウ入力矩形、またはウィンドウのクライアント矩形のいずれかです。
マージンはアプリケーションのウィンドウ内でのみ有効です。アプリケーションのウィンドウの外でペンを使用すると、アプリケーションはフォーカスを失い、インクを収集できません。
ウィンドウ矩形の周囲の x 軸方向のマージンを画面座標で取得または設定します。このマージンはインク ウィンドウの端の周囲にバッファーを提供します。(IInkCollector.put_MarginX)
| MarginX | INT | in | 入力領域の水平方向のマージン(ピクセル)を指定する。 |
解説(Remarks)
このプロパティは主に非統合型のタブレット デバイスで使用されます。画面と 1 対 1 で対応しないデバイスに書き込む際、このバッファーによってユーザーに誤差の余裕が与えられます。
マージンは画面座標で指定します。正のマージンはコンテキストの外側に広がり、負のマージンはコンテキストの内側に広がり、0 の場合はマージンなしになります。ストロークがマージン内で開始された場合、インクは収集されます。この動作によってインクがクリップされることはありません。オブジェクトまたはコントロールのコンテキストは、GetWindowInputRectangle メソッドで取得されるウィンドウ入力矩形、またはウィンドウのクライアント矩形のいずれかです。
マージンはアプリケーションのウィンドウ内でのみ有効です。アプリケーションのウィンドウの外でペンを使用すると、アプリケーションはフォーカスを失い、インクを収集できません。
ウィンドウ矩形の周囲の y 軸方向のマージンを画面座標で取得または設定します。このマージンはインク ウィンドウの端の周囲にバッファーを提供します。(IInkCollector.get_MarginY)
| MarginY | INT* | out | 入力領域の垂直方向のマージン(ピクセル)を受け取るポインタである。 |
解説(Remarks)
このプロパティは主に非統合型のタブレット デバイスで使用されます。画面と 1 対 1 で対応しないデバイスに書き込む際、このバッファーによってユーザーに誤差の余裕が与えられます。
マージンは画面座標で指定します。正のマージンはコンテキストの外側に広がり、負のマージンはコンテキストの内側に広がり、0 の場合はマージンなしになります。ストロークがマージン内で開始された場合、インクは収集されます。この動作によってインクがクリップされることはありません。オブジェクトまたはコントロールのコンテキストは、GetWindowInputRectangle メソッドで取得されるウィンドウ入力矩形、またはウィンドウのクライアント矩形のいずれかです。
マージンはアプリケーションのウィンドウ内でのみ有効です。アプリケーションのウィンドウの外でペンを使用すると、アプリケーションはフォーカスを失い、インクを収集できません。
ウィンドウ矩形の周囲の y 軸方向のマージンを画面座標で取得または設定します。このマージンはインク ウィンドウの端の周囲にバッファーを提供します。(IInkCollector.put_MarginY)
| MarginY | INT | in | 入力領域の垂直方向のマージン(ピクセル)を指定する。 |
解説(Remarks)
このプロパティは主に非統合型のタブレット デバイスで使用されます。画面と 1 対 1 で対応しないデバイスに書き込む際、このバッファーによってユーザーに誤差の余裕が与えられます。
マージンは画面座標で指定します。正のマージンはコンテキストの外側に広がり、負のマージンはコンテキストの内側に広がり、0 の場合はマージンなしになります。ストロークがマージン内で開始された場合、インクは収集されます。この動作によってインクがクリップされることはありません。オブジェクトまたはコントロールのコンテキストは、GetWindowInputRectangle メソッドで取得されるウィンドウ入力矩形、またはウィンドウのクライアント矩形のいずれかです。
マージンはアプリケーションのウィンドウ内でのみ有効です。アプリケーションのウィンドウの外でペンを使用すると、アプリケーションはフォーカスを失い、インクを収集できません。
カーソルが属する IInkTablet オブジェクト、またはオブジェクトやコントロールが現在入力の収集に使用している IInkTablet オブジェクトを取得します。(IInkCollector.get_Tablet)
| SingleTablet | IInkTablet** | out | 単一タブレット統合モードで使用されているタブレット オブジェクトを受け取るポインタである。 |
解説(Remarks)
インクを収集するオブジェクトまたはコントロールの場合、このプロパティは 1 台のタブレットのみからインクを収集しているときにだけ有効です。すべてのタブレットからインクを収集しているオブジェクトまたはコントロールでこのプロパティにアクセスすると、例外が発生します。
特定のメッセージ ハンドラー内でこのプロパティにアクセスすると、内部の関数が再入され、予期しない結果を招くことがあります。次のメッセージを処理する際は、再入呼び出しが発生しないように注意してください。WM_ACTIVATE、WM_ACTIVATEAPP、WM_NCACTIVATE、WM_PAINT、wParam に SC_HOTKEY または SC_TASKLIST が設定されている場合の WM_SYSCOMMAND、および WM_SYSKEYDOWN (Alt-Tab または Alt-Esc のキーの組み合わせを処理する場合)。これはシングルスレッド アパートメント モデルのアプリケーションで発生する問題です。
システムがハイ コントラスト モードのときに、インクを単一の色でレンダリングするかどうかを指定する値を取得または設定します。(IInkCollector.get_SupportHighContrastInk)
| Support | VARIANT_BOOL* | out | ハイ コントラスト モード時にインクを単色で表示する設定が有効かどうかを受け取る VARIANT_BOOL へのポインタである。 |
解説(Remarks)
このプロパティは、システムがハイ コントラスト モードに切り替わったときのインクのレンダリング方法を変更します。
システムがハイ コントラスト モードで SupportHighContrastInk プロパティが TRUE の場合、リアルタイム インク アプリケーションは COLOR_WINDOWTEXT の色を使用しますが、この条件下で描画されたストローク本来の色は変わりません。たとえば、Color プロパティが RGB(0,0,255) (青) に設定され、COLOR_WINDOWTEXT が RGB(255,255,255) (白) に設定されていて、システムがハイ コントラスト モードである場合、新しく描画されたストロークは白でレンダリングされますが、実際のストロークの色は青のままです。この動作の詳細については、Color プロパティおよび GetSysColor 関数を参照してください。
システムがハイ コントラスト モードのときに、インクを単一の色でレンダリングするかどうかを指定する値を取得または設定します。(IInkCollector.put_SupportHighContrastInk)
| Support | VARIANT_BOOL | in | ハイ コントラスト モード時にインクを単色で表示するかどうかを指定する VARIANT_BOOL である。 |
解説(Remarks)
このプロパティは、システムがハイ コントラスト モードに切り替わったときのインクのレンダリング方法を変更します。
システムがハイ コントラスト モードで SupportHighContrastInk プロパティが TRUE の場合、リアルタイム インク アプリケーションは COLOR_WINDOWTEXT の色を使用しますが、この条件下で描画されたストローク本来の色は変わりません。たとえば、Color プロパティが RGB(0,0,255) (青) に設定され、COLOR_WINDOWTEXT が RGB(255,255,255) (白) に設定されていて、システムがハイ コントラスト モードである場合、新しく描画されたストロークは白でレンダリングされますが、実際のストロークの色は青のままです。この動作の詳細については、Color プロパティおよび GetSysColor 関数を参照してください。
特定のジェスチャに対するオブジェクトまたはコントロールの関心を変更します。(IInkCollector.SetGestureStatus)
| Gesture | InkApplicationGesture | in | 状態を設定するジェスチャ。 |
| Listen | VARIANT_BOOL | in | ジェスチャを使用する場合は VARIANT_TRUE、無視する場合は VARIANT_FALSE を指定します。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターン コード | 説明 |
|---|---|
| 成功しました。 | |
| パラメーターに無効なポインターが含まれていました。 | |
|
InkCollector の収集モードがジェスチャ モードである必要があります。 |
|
例外が発生しました。 |
| サポートされていないジェスチャです。 | |
| フラグが無効です。 | |
| メモリを割り当てられません。 |
解説(Remarks)
特定のジェスチャに対するオブジェクトまたはコントロールの関心を取得するには、GetGestureStatus メソッドを呼び出します。
IAG_AllGestures ジェスチャ ID は InkEdit コントロールではサポートされておらず、エラーを返します。無効なジェスチャ ID を渡した場合、InkEdit ではエラーになりませんが、InkCollector、InkOverlay、InkPicture では失敗します。
InkEdit コントロールの場合、このメソッドは Status プロパティが IES_Idle を返す場合にのみ呼び出してください。
InkCollector オブジェクトまたは InkOverlay オブジェクトが特定のアプリケーション ジェスチャに関心を持っているかどうかを示します。
| Gesture | InkApplicationGesture | in | 状態を取得するジェスチャを設定します。 |
| Listening | VARIANT_BOOL* | out | InkCollector コントロールが特定のアプリケーション ジェスチャに関心を持っている場合は VARIANT_TRUE、それ以外の場合は VARIANT_VALSE。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターン コード | 説明 |
|---|---|
| 成功しました。 | |
| パラメーターに無効なポインターが含まれていました。 | |
|
収集モードがジェスチャ モードである必要があります。 |
| 操作を実行するためのメモリを割り当てられません。 | |
|
例外が発生しました。 |
| フラグが無効です。 |
解説(Remarks)
gesture パラメーターに IAG_AllGestures を設定した場合、このメソッドは例外をスローします。
特定のジェスチャに対する InkCollector または InkOverlay オブジェクトの関心を設定するには、InkCollector または InkOverlay オブジェクトの SetGestureStatus メソッドを呼び出します。
インクが描画されるウィンドウ矩形をピクセル単位で取得します。(IInkCollector.GetWindowInputRectangle)
| WindowInputRectangle | IInkRectangle** | inout | インクが描画される InkRectangle 型の矩形。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターン コード | 説明 |
|---|---|
| 成功しました。 | |
| パラメーターに無効なポインターが含まれています。 | |
|
InkRectangle オブジェクトが登録されていません。 |
|
メソッド内で例外が発生しました。 |
解説(Remarks)
このメソッドに矩形を渡す前に、まず矩形を割り当てておく必要があります。
既定では、ウィンドウ入力矩形は {0,0,0,0} に設定されています。この既定の矩形はウィンドウ全体のサイズに対応します。
SetWindowInputRectangle メソッドを呼び出す前に GetWindowInputRectangle を呼び出した場合、このメソッドは既定の座標を持つ矩形を取得します。
インクが描画されるウィンドウ矩形をピクセル単位で設定します。(IInkCollector.SetWindowInputRectangle)
| WindowInputRectangle | IInkRectangle* | inoptional | インクが描画される矩形 (ウィンドウ座標)。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターン コード | 説明 |
|---|---|
| 成功しました。 | |
| パラメーターに無効なポインターが含まれていました。 | |
| 矩形の座標が無効です (幅や高さが 0 の場合など)。 | |
|
ストロークの途中でマッピングを更新することはできません。 |
|
メソッド内で例外が発生しました。 |
|
ウィンドウ入力矩形が、有効な InkCollector のウィンドウ入力矩形と重なっています。 |
解説(Remarks)
有効なインク コレクター (Enabled プロパティで設定します) のウィンドウ入力矩形が、別の有効なインク コレクターのウィンドウ入力矩形と重なる場合、E_INK_OVERLAPPING_INPUT_RECT エラーが返されます。
ウィンドウ入力矩形を既定の動作 (座標 {0,0,0,0} の空の矩形) にリセットするには、SetWindowInputRectangle の呼び出しで NULL ではなく {0,0,0,0} を渡します。
Right プロパティの値が Left プロパティの値より小さい矩形、または Bottom プロパティの値が Top プロパティの値より小さい矩形を渡すことはできません。たとえば、{500, 500, 400, 400} というパラメーターを持つ矩形は無効です。
インク コレクター (InkCollector、InkOverlay、または InkPicture) が、Tablet PC に接続されている任意のタブレットからインクを収集できるようにします。(IInkCollector.SetAllTabletsMode)
| UseMouseForInput | VARIANT_BOOL | in | マウスを入力に使用する場合は VARIANT_TRUE、それ以外の場合は VARIANT_FALSE。既定値は VARIANT_TRUE です。このパラメーターは省略可能です。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターン コード | 説明 |
|---|---|
| 成功しました。 | |
|
InkCollector が有効な間はモードを変更できません。 |
|
メソッド内で例外が発生しました。 |
| フラグが無効です。 |
解説(Remarks)
これは、インクを収集するオブジェクトまたはコントロールの既定のモードです。インク コレクターが 1 台のタブレットのみからインクを収集するようにするには、SetSingleTabletIntegratedMode メソッドを呼び出します。
インク コレクター (InkCollector、InkOverlay、または InkPicture) が 1 台のタブレットのみからインクを収集するようにします。他のタブレットからのインクはインク コレクターによって無視されます。(IInkCollector.SetSingleTabletIntegratedMode)
| Tablet | IInkTablet* | inoptional | インクを収集または描画するタブレット。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターン コード | 説明 |
|---|---|
| 成功しました。 | |
| パラメーターに無効なポインターが含まれていました。 | |
|
コレクターが有効な間、タブレットはモードを変更できません。 |
|
処理中に例外が発生しました。 |
|
タブレットが互換性のある Ink オブジェクトを指していません。 |
解説(Remarks)
インク コレクターがすべてのタブレットからインクを収集するようにするには、SetAllTabletsMode メソッドを呼び出します。
InkCollector クラス、InkOverlay クラス、または InkPicture クラスの特定のイベントに対して、オブジェクトが持つ関心を取得します。(IInkCollector.GetEventInterest)
| EventId | InkCollectorEventInterest | in | このメソッドが関心を確認するイベント。 |
| Listen | VARIANT_BOOL* | out | 指定したイベントへの関心が設定されている場合は VARIANT_BOOL、それ以外の場合は VARIANT_FALSE。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターン コード | 説明 |
|---|---|
| 成功しました。 | |
| パラメーターに無効なポインターが含まれていました。 | |
| イベントへの関心が無効です。 | |
|
処理中に例外が発生しました。 |
オブジェクトまたはコントロールが指定されたイベントに関心を持っているかどうかを示す値を変更します。(IInkCollector.SetEventInterest)
| EventId | InkCollectorEventInterest | in | リッスンの対象となるイベント。 |
| Listen | VARIANT_BOOL | in | イベントを使用する場合は VARIANT_TRUE、無視する場合は VARIANT_FALSE。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターン コード | 説明 |
|---|---|
| 成功しました。 | |
| パラメーターに無効なポインターが含まれていました。 | |
| イベントへの関心が無効です。 | |
|
処理中に例外が発生しました。 |
解説(Remarks)
このメソッドを使用すると、インク コレクターのすべてのイベントを切り替えることができます。これらのイベントの多くは、パフォーマンス上の理由から既定でオフになっています。既定でオンになっているのは Stroke、CursorInRange、CursorOutOfRange のみです。
NewPackets、NewInAirPackets、CursorDown の各イベントは慎重に使用してください。特に、イベント ハンドラー内で多くのコードを実行すると、インクのパフォーマンスに悪影響を及ぼす可能性があります。
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 不要)。#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 sptr #comfunc global IInkCollector_put_hWnd 8 sptr #comfunc global IInkCollector_get_Enabled 9 sptr #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 sptr #comfunc global IInkCollector_put_AutoRedraw 18 int #comfunc global IInkCollector_get_CollectingInk 19 sptr #comfunc global IInkCollector_get_CollectionMode 20 sptr #comfunc global IInkCollector_put_CollectionMode 21 int #comfunc global IInkCollector_get_DynamicRendering 22 sptr #comfunc global IInkCollector_put_DynamicRendering 23 int #comfunc global IInkCollector_get_DesiredPacketDescription 24 sptr #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 sptr #comfunc global IInkCollector_put_MousePointer 30 int #comfunc global IInkCollector_get_Cursors 31 sptr #comfunc global IInkCollector_get_MarginX 32 sptr #comfunc global IInkCollector_put_MarginX 33 int #comfunc global IInkCollector_get_MarginY 34 sptr #comfunc global IInkCollector_put_MarginY 35 int #comfunc global IInkCollector_get_Tablet 36 sptr #comfunc global IInkCollector_get_SupportHighContrastInk 37 sptr #comfunc global IInkCollector_put_SupportHighContrastInk 38 int #comfunc global IInkCollector_SetGestureStatus 39 int,int #comfunc global IInkCollector_GetGestureStatus 40 int,sptr #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,sptr #comfunc global IInkCollector_SetEventInterest 46 int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。