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

IInkCursors

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

公式ドキュメント

IInkCursor オブジェクトのコレクションを表します。

解説(Remarks)

カーソルは、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture コントロールの範囲内に入ると、そのオブジェクトの cursors コレクションの一部になります。新しいカーソルが範囲内に入るたびに、そのカーソルはオブジェクトの cursors コレクションに追加されます。cursors コレクションは、そのオブジェクトの有効期間中にのみ存在します。

たとえば、ペンを使用して InkCollector オブジェクト上にインクを描画すると、そのペンは InkCollector オブジェクトの Cursors プロパティの一部になります。続いて同じ InkCollector オブジェクトでマウスを入力に使用すると、マウスもこのコレクションに追加されます。

このコレクションを使用すると、既知の InkCollector オブジェクト上のすべての IInkCursor オブジェクトを列挙できます。

COM におけるコレクションの詳細については、「Using the COM Library」を参照してください。

このインターフェイスを実装するクラスを独自に定義した場合、その新しいクラスは Tablet PC のアプリケーション プログラミング インターフェイス (API) と正しく連携しません。

メソッド 3

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

vtbl 7 HRESULT get_Count(INT* Count)

コレクションに含まれるオブジェクトまたはコレクションの数を取得します。(IInkCursors.get_Count)

CountINT*outコレクションに含まれるカーソルの個数を受け取るポインタである。
vtbl 8 HRESULT get__NewEnum(IUnknown** _NewEnum)
_NewEnumIUnknown**outコレクションを反復処理するための列挙子 (IEnumVARIANT) を受け取る IUnknown ポインタである。
vtbl 9 HRESULT Item(INT Index, IInkCursor** Cursor)

IInkCursors コレクション内の指定されたインデックスにある IInkCursor オブジェクトを返します。

IndexINTin取得する IInkCursor オブジェクトの、0 から始まるインデックス。
CursorIInkCursor**outこのメソッドが戻るときに、IInkCursors コレクション内の指定されたインデックスにある IInkCursor オブジェクトへのポインターが格納されます。

戻り値

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

戻り値 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_FAIL
不明なエラーが発生しました。
CO_E_CLASSTRING
GUID の形式が無効です。
DISP_E_TYPEMISMATCH
パラメーターのいずれかが有効な VARIANT 型ではありません。
E_INVALIDARG
引数が無効です。
E_UNEXPECTED
予期しないパラメーターまたはプロパティの型です。
REGDB_CLASSNOTREG
OBJECT 型が登録されていません。
E_OUTOFMEMORY
操作を完了するためのメモリを割り当てられません。
E_INK_EXCEPTION
メソッド内部で例外が発生しました。
TPC_E_RECOGNIZER_NOT_REGISTERED
認識エンジンのレジストリ キーが破損しているか、使用している環境が手書き認識をサポートしていません。

解説(Remarks)

インデックスがコレクション内の既存のメンバーのいずれとも一致しない場合は、エラーが発生します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IInkCursors "{A248C1AC-C698-4E06-9E5C-D57F77C7E647}"
#usecom global IInkCursors IID_IInkCursors "{}"
#comfunc global IInkCursors_get_Count     7 var
#comfunc global IInkCursors_get__NewEnum  8 sptr
#comfunc global IInkCursors_Item          9 int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。