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

IInkDivider

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

公式ドキュメント

. (IInkDivider)

メソッド 7

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

vtbl 7 HRESULT get_Strokes(IInkStrokes** Strokes)

InkDivider オブジェクトがレイアウト解析を実行する対象の InkStrokes コレクションを取得または設定します。(IInkDivider.get_Strokes)

StrokesIInkStrokes**out分割対象として設定されているストローク コレクションを受け取るポインタである。

解説(Remarks)

このプロパティは、InkStrokes コレクションを保持します。InkDivider オブジェクトはこのコレクションを解析し、そこから InkDivider オブジェクトが IInkDivisionResult オブジェクトを作成します。InkDivider オブジェクトがレイアウト解析を実行するには、このプロパティに InkStrokes コレクションを割り当てる必要があります。

特定の InkDivider オブジェクトに対して、このプロパティの割り当ては 1 回だけにしてください。すでに割り当てられている状態でさらに InkStrokes オブジェクトを割り当てると、不正確な結果が返されます。また、InkStrokes コレクションを Strokes プロパティに割り当てた後は、LineHeight プロパティおよび RecognizerContext プロパティを変更できません。

InkDivider オブジェクトの Strokes プロパティを InkDisp オブジェクトと同期させるには、InkDisp オブジェクトの InkAdded イベントおよび InkDeleted イベントを使用して、InkDivider オブジェクトに追加または削除すべきストロークを監視します。これにより、InkDisp オブジェクト内でストロークが追加、削除、クリップ、または分割された場合に対応できます。

注意 InkDisp オブジェクト内のストロークに対する移動、拡大縮小、その他の変換では、InkAdded イベントや InkDeleted イベントは生成されません。InkDivider オブジェクトの Strokes プロパティを同期させるには、InkDivider オブジェクト内のストロークにも同じ変換を実行してください。
vtbl 8 HRESULT putref_Strokes(IInkStrokes* Strokes)

InkDivider オブジェクトがレイアウト解析を実行する対象の InkStrokes コレクションを取得または設定します。

StrokesIInkStrokes*inoptional分割対象とするストローク コレクションへのポインタである。

解説(Remarks)

このプロパティは、InkStrokes コレクションを保持します。InkDivider オブジェクトはこのコレクションを解析し、そこから InkDivider オブジェクトが IInkDivisionResult オブジェクトを作成します。InkDivider オブジェクトがレイアウト解析を実行するには、このプロパティに InkStrokes コレクションを割り当てる必要があります。

特定の InkDivider オブジェクトに対して、このプロパティの割り当ては 1 回だけにしてください。すでに割り当てられている状態でさらに InkStrokes オブジェクトを割り当てると、不正確な結果が返されます。また、InkStrokes コレクションを Strokes プロパティに割り当てた後は、LineHeight プロパティおよび RecognizerContext プロパティを変更できません。

InkDivider オブジェクトの Strokes プロパティを InkDisp オブジェクトと同期させるには、InkDisp オブジェクトの InkAdded イベントおよび InkDeleted イベントを使用して、InkDivider オブジェクトに追加または削除すべきストロークを監視します。これにより、InkDisp オブジェクト内でストロークが追加、削除、クリップ、または分割された場合に対応できます。

注意 InkDisp オブジェクト内のストロークに対する移動、拡大縮小、その他の変換では、InkAdded イベントや InkDeleted イベントは生成されません。InkDivider オブジェクトの Strokes プロパティを同期させるには、InkDivider オブジェクト内のストロークにも同じ変換を実行してください。
vtbl 9 HRESULT get_RecognizerContext(IInkRecognizerContext** RecognizerContext)

InkDivider オブジェクトがレイアウト解析に使用する InkRecognizerContext オブジェクトを取得または設定します。(IInkDivider.get_RecognizerContext)

RecognizerContextIInkRecognizerContext**out分割処理に使用される認識コンテキストを受け取るポインタである。

解説(Remarks)

RecognizerContext プロパティを設定する場合は、InkDivider オブジェクトを構築した後、最初に行う必要があります。Divider.Strokes プロパティを設定した後、Divider.Divide を呼び出した後、または 2 回以上設定しようとした場合、RecognizerContext プロパティの設定はエラーになります。

さらに、次のような認識エンジンコンテキストを割り当てた場合も、このプロパティはエラーを生成します。

InkDivider オブジェクトにストロークが割り当てられた時点でこのプロパティの値が NULL の場合、InkDivider オブジェクトは認識エンジンコンテキストを使用しません。
注意 InkDivider オブジェクトは InkRecognizerContext オブジェクトの既定のプロパティ設定を使用し、InkRecognizerContext オブジェクトに割り当てられたストロークは無視します。
vtbl 10 HRESULT putref_RecognizerContext(IInkRecognizerContext* RecognizerContext)

InkDivider オブジェクトがレイアウト解析に使用する InkRecognizerContext オブジェクトを取得または設定します。

RecognizerContextIInkRecognizerContext*inoptional分割処理に使用する認識コンテキストへのポインタである。

解説(Remarks)

RecognizerContext プロパティを設定する場合は、InkDivider オブジェクトを構築した後、最初に行う必要があります。Divider.Strokes プロパティを設定した後、Divider.Divide を呼び出した後、または 2 回以上設定しようとした場合、RecognizerContext プロパティの設定はエラーになります。

さらに、次のような認識エンジンコンテキストを割り当てた場合も、このプロパティはエラーを生成します。

InkDivider オブジェクトにストロークが割り当てられた時点でこのプロパティの値が NULL の場合、InkDivider オブジェクトは認識エンジンコンテキストを使用しません。
注意 InkDivider オブジェクトは InkRecognizerContext オブジェクトの既定のプロパティ設定を使用し、InkRecognizerContext オブジェクトに割り当てられたストロークは無視します。
vtbl 11 HRESULT get_LineHeight(INT* LineHeight)

想定される手書き文字の高さを HIMETRIC 単位で取得または設定します。(Get)

LineHeightINT*out分割で想定される現在の行高さ(インク空間単位)を受け取るポインタである。

解説(Remarks)

LineHeight プロパティは 100 ~ 50,000 HIMETRIC 単位の範囲でなければなりません。

InkDivider オブジェクトは、描画と手書き文字を区別するために LineHeight プロパティを使用します。

InkDivider オブジェクトにストロークを割り当てた後で LineHeight プロパティを設定すると、エラーが発生します。

vtbl 12 HRESULT put_LineHeight(INT LineHeight)

想定される手書き文字の高さを HIMETRIC 単位で取得または設定します。(Put)

LineHeightINTin分割で想定する行高さ(インク空間単位)を指定する。

解説(Remarks)

LineHeight プロパティは 100 ~ 50,000 HIMETRIC 単位の範囲でなければなりません。

InkDivider オブジェクトは、描画と手書き文字を区別するために LineHeight プロパティを使用します。

InkDivider オブジェクトにストロークを割り当てた後で LineHeight プロパティを設定すると、エラーが発生します。

vtbl 13 HRESULT Divide(IInkDivisionResult** InkDivisionResult)

InkDivider オブジェクト内のストロークに対するレイアウト解析の結果を格納した IInkDivisionResult オブジェクトを返します。

InkDivisionResultIInkDivisionResult**outこのメソッドから制御が戻るとき、InkDivider オブジェクト内のストロークに関する構造情報を格納した IInkDivisionResult オブジェクトへのポインターが格納されます。

戻り値

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

戻り値 説明
S_OK
成功しました。
E_POINTER
パラメーターに無効なポインターが含まれています。
E_UNEXPECTED
パラメーターまたはプロパティの型が予期しないものです。
E_FAIL
不特定のエラーが発生しました。
E_OUTOFMEMORY
操作を完了するためのメモリを割り当てられませんでした。
E_INK_EXCEPTION
メソッド内部で例外が発生しました。

解説(Remarks)

このメソッドは、呼び出されるたびに新しい IInkDivisionResult オブジェクトを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IInkDivider "{5DE00405-F9A4-4651-B0C5-C317DEFD58B9}"
#usecom global IInkDivider IID_IInkDivider "{8854F6A0-4683-4AE7-9191-752FE64612C3}"
#comfunc global IInkDivider_get_Strokes               7 sptr
#comfunc global IInkDivider_putref_Strokes            8 sptr
#comfunc global IInkDivider_get_RecognizerContext     9 sptr
#comfunc global IInkDivider_putref_RecognizerContext  10 sptr
#comfunc global IInkDivider_get_LineHeight            11 var
#comfunc global IInkDivider_put_LineHeight            12 int
#comfunc global IInkDivider_Divide                    13 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。