ホーム › UI.TabletPC › IInkDisp
IInkDisp
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 25
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
vtbl 7 HRESULT get_Strokes(IInkStrokes** Strokes)
| Strokes | IInkStrokes** | out | インクに含まれるすべてのストロークのコレクションを受け取るポインタである。 |
vtbl 8 HRESULT get_ExtendedProperties(IInkExtendedProperties** Properties)
| Properties | IInkExtendedProperties** | out | インク オブジェクトに関連付けられた拡張プロパティのコレクションを受け取るポインタである。 |
vtbl 9 HRESULT get_Dirty(VARIANT_BOOL* Dirty)
| Dirty | VARIANT_BOOL* | out | 前回の保存以降にインクが変更されたかどうかを受け取る VARIANT_BOOL へのポインタである。 |
vtbl 10 HRESULT put_Dirty(VARIANT_BOOL Dirty)
| Dirty | VARIANT_BOOL | in | インクの変更フラグ(ダーティ状態)に設定する値を指定する VARIANT_BOOL である。 |
vtbl 11 HRESULT get_CustomStrokes(IInkCustomStrokes** ppunkInkCustomStrokes)
| ppunkInkCustomStrokes | IInkCustomStrokes** | out | インクに含まれる名前付きストローク集合のコレクションを受け取るポインタである。 |
vtbl 12 HRESULT GetBoundingBox(InkBoundingBoxMode BoundingBoxMode, IInkRectangle** Rectangle)
| BoundingBoxMode | InkBoundingBoxMode | in | 境界ボックスの算出方法を指定する InkBoundingBoxMode 値である。 |
| Rectangle | IInkRectangle** | out | インク全体の境界矩形を受け取るポインタである。 |
vtbl 13 HRESULT DeleteStrokes(IInkStrokes* Strokes)
| Strokes | IInkStrokes* | inoptional | インクから削除するストローク コレクションへのポインタである。 |
vtbl 14 HRESULT DeleteStroke(IInkStrokeDisp* Stroke)
| Stroke | IInkStrokeDisp* | inoptional | インクから削除する単一のストローク オブジェクトへのポインタである。 |
vtbl 15 HRESULT ExtractStrokes(IInkStrokes* Strokes, InkExtractFlags ExtractFlags, IInkDisp** ExtractedInk)
| Strokes | IInkStrokes* | inoptional | 抽出対象とするストローク コレクションへのポインタである。 |
| ExtractFlags | InkExtractFlags | in | 抽出時の動作(コピーか切り取りか等)を指定する InkExtractFlags 値である。 |
| ExtractedInk | IInkDisp** | out | 抽出されたストロークを含む新しいインク オブジェクトを受け取るポインタである。 |
vtbl 16 HRESULT ExtractWithRectangle(IInkRectangle* Rectangle, InkExtractFlags extractFlags, IInkDisp** ExtractedInk)
| Rectangle | IInkRectangle* | inoptional | 抽出範囲となる矩形へのポインタである。 |
| extractFlags | InkExtractFlags | in | 抽出時の動作(コピーか切り取りか等)を指定する InkExtractFlags 値である。 |
| ExtractedInk | IInkDisp** | out | 矩形内から抽出されたストロークを含む新しいインク オブジェクトを受け取るポインタである。 |
vtbl 17 HRESULT Clip(IInkRectangle* Rectangle)
| Rectangle | IInkRectangle* | inoptional | インクを切り取る境界となる矩形へのポインタである。 |
| NewInk | IInkDisp** | out | このインク オブジェクトの複製を受け取るポインタである。 |
vtbl 19 HRESULT HitTestCircle(INT X, INT Y, FLOAT radius, IInkStrokes** Strokes)
| X | INT | in | ヒット テストを行う円の中心の X 座標(インク空間単位)を指定する。 |
| Y | INT | in | ヒット テストを行う円の中心の Y 座標(インク空間単位)を指定する。 |
| radius | FLOAT | in | ヒット テストを行う円の半径を指定する。 |
| Strokes | IInkStrokes** | out | 指定した円と交差するストロークのコレクションを受け取るポインタである。 |
vtbl 20 HRESULT HitTestWithRectangle(IInkRectangle* SelectionRectangle, FLOAT IntersectPercent, IInkStrokes** Strokes)
| SelectionRectangle | IInkRectangle* | inoptional | ヒット テストを行う選択矩形へのポインタである。 |
| IntersectPercent | FLOAT | in | ストロークが選択されたとみなすために必要な矩形との重なり割合(パーセント)を指定する。 |
| Strokes | IInkStrokes** | out | 条件を満たすストロークのコレクションを受け取るポインタである。 |
vtbl 21 HRESULT HitTestWithLasso(VARIANT Points, FLOAT IntersectPercent, VARIANT* LassoPoints, IInkStrokes** Strokes)
| Points | VARIANT | in | 投げ縄(ラッソ)を構成する点の座標配列を格納した VARIANT である。 |
| IntersectPercent | FLOAT | in | ストロークが選択されたとみなすために必要な投げ縄領域との重なり割合(パーセント)を指定する。 |
| LassoPoints | VARIANT* | inoutoptional | 実際に使用された投げ縄の点配列を受け取る VARIANT へのポインタである。 |
| Strokes | IInkStrokes** | out | 投げ縄内に入ったストロークのコレクションを受け取るポインタである。 |
vtbl 22 HRESULT NearestPoint(INT X, INT Y, FLOAT* PointOnStroke, FLOAT* DistanceFromPacket, IInkStrokeDisp** Stroke)
| X | INT | in | 基準点の X 座標(インク空間単位)を指定する。 |
| Y | INT | in | 基準点の Y 座標(インク空間単位)を指定する。 |
| PointOnStroke | FLOAT* | inout | 最近接ストローク上の最近点の位置(パラメータ値)を受け取るポインタである。 |
| DistanceFromPacket | FLOAT* | inout | 基準点から最近点までの距離を受け取るポインタである。 |
| Stroke | IInkStrokeDisp** | out | 基準点に最も近いストローク オブジェクトを受け取るポインタである。 |
vtbl 23 HRESULT CreateStrokes(VARIANT StrokeIds, IInkStrokes** Strokes)
| StrokeIds | VARIANT | in | 新しいコレクションに含めるストロークの ID 配列を格納した VARIANT である。 |
| Strokes | IInkStrokes** | out | 指定した ID のストロークから成る新しいコレクションを受け取るポインタである。 |
vtbl 24 HRESULT AddStrokesAtRectangle(IInkStrokes* SourceStrokes, IInkRectangle* TargetRectangle)
| SourceStrokes | IInkStrokes* | inoptional | 追加元となるストローク コレクションへのポインタである。 |
| TargetRectangle | IInkRectangle* | inoptional | 追加したストロークを配置・拡大縮小して収める対象矩形へのポインタである。 |
vtbl 25 HRESULT Save(InkPersistenceFormat PersistenceFormat, InkPersistenceCompressionMode CompressionMode, VARIANT* Data)
| PersistenceFormat | InkPersistenceFormat | in | 保存形式(ISF、GIF、Base64 等)を指定する InkPersistenceFormat 値である。 |
| CompressionMode | InkPersistenceCompressionMode | in | 保存時の圧縮モードを指定する InkPersistenceCompressionMode 値である。 |
| Data | VARIANT* | out | シリアライズされたインク データを受け取る VARIANT へのポインタである。 |
| Data | VARIANT | in | 読み込むインクのシリアライズ済みデータを格納した VARIANT である。 |
vtbl 27 HRESULT CreateStroke(VARIANT PacketData, VARIANT PacketDescription, IInkStrokeDisp** Stroke)
| PacketData | VARIANT | in | 新しいストロークを構成するパケット データを格納した VARIANT である。 |
| PacketDescription | VARIANT | in | パケットを構成する各プロパティの GUID 配列を格納した VARIANT である。省略時は既定の記述が使用される。 |
| Stroke | IInkStrokeDisp** | out | 新たに生成されたストローク オブジェクトを受け取るポインタである。 |
vtbl 28 HRESULT ClipboardCopyWithRectangle(IInkRectangle* Rectangle, InkClipboardFormats ClipboardFormats, InkClipboardModes ClipboardModes, IDataObject** DataObject)
| Rectangle | IInkRectangle* | inoptional | コピー対象とするストロークを含む矩形へのポインタである。 |
| ClipboardFormats | InkClipboardFormats | in | クリップボードに格納するデータ形式を指定する InkClipboardFormats 値である。 |
| ClipboardModes | InkClipboardModes | in | コピー時の動作(切り取り・遅延レンダリング等)を指定する InkClipboardModes 値である。 |
| DataObject | IDataObject** | out | クリップボード用のデータ オブジェクトを受け取るポインタである。 |
vtbl 29 HRESULT ClipboardCopy(IInkStrokes* strokes, InkClipboardFormats ClipboardFormats, InkClipboardModes ClipboardModes, IDataObject** DataObject)
| strokes | IInkStrokes* | inoptional | クリップボードへコピーするストローク コレクションへのポインタである。 |
| ClipboardFormats | InkClipboardFormats | in | クリップボードに格納するデータ形式を指定する InkClipboardFormats 値である。 |
| ClipboardModes | InkClipboardModes | in | コピー時の動作(切り取り・遅延レンダリング等)を指定する InkClipboardModes 値である。 |
| DataObject | IDataObject** | out | クリップボード用のデータ オブジェクトを受け取るポインタである。 |
vtbl 30 HRESULT CanPaste(IDataObject* DataObject, VARIANT_BOOL* CanPaste)
| DataObject | IDataObject* | inoptional | 貼り付け可否を判定するデータ オブジェクトへのポインタである。NULL の場合はシステム クリップボードを対象とする。 |
| CanPaste | VARIANT_BOOL* | out | インク データを貼り付け可能かどうかを受け取る VARIANT_BOOL へのポインタである。 |
vtbl 31 HRESULT ClipboardPaste(INT x, INT y, IDataObject* DataObject, IInkStrokes** Strokes)
| x | INT | in | 貼り付け位置の X 座標(インク空間単位)を指定する。 |
| y | INT | in | 貼り付け位置の Y 座標(インク空間単位)を指定する。 |
| DataObject | IDataObject* | inoptional | 貼り付け元のデータ オブジェクトへのポインタである。NULL の場合はシステム クリップボードから貼り付ける。 |
| Strokes | IInkStrokes** | out | 貼り付けられて新たに追加されたストロークのコレクションを受け取るポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IInkDisp "{9D398FA0-C4E2-4FCD-9973-975CAAF47EA6}" #usecom global IInkDisp IID_IInkDisp "{937C1A34-151D-4610-9CA6-A8CC9BDB5D83}" #comfunc global IInkDisp_get_Strokes 7 sptr #comfunc global IInkDisp_get_ExtendedProperties 8 sptr #comfunc global IInkDisp_get_Dirty 9 var #comfunc global IInkDisp_put_Dirty 10 int #comfunc global IInkDisp_get_CustomStrokes 11 sptr #comfunc global IInkDisp_GetBoundingBox 12 int,sptr #comfunc global IInkDisp_DeleteStrokes 13 sptr #comfunc global IInkDisp_DeleteStroke 14 sptr #comfunc global IInkDisp_ExtractStrokes 15 sptr,int,sptr #comfunc global IInkDisp_ExtractWithRectangle 16 sptr,int,sptr #comfunc global IInkDisp_Clip 17 sptr #comfunc global IInkDisp_Clone 18 sptr #comfunc global IInkDisp_HitTestCircle 19 int,int,float,sptr #comfunc global IInkDisp_HitTestWithRectangle 20 sptr,float,sptr #comfunc global IInkDisp_HitTestWithLasso 21 int,float,var,sptr #comfunc global IInkDisp_NearestPoint 22 int,int,var,var,sptr #comfunc global IInkDisp_CreateStrokes 23 int,sptr #comfunc global IInkDisp_AddStrokesAtRectangle 24 sptr,sptr #comfunc global IInkDisp_Save 25 int,int,var #comfunc global IInkDisp_Load 26 int #comfunc global IInkDisp_CreateStroke 27 int,int,sptr #comfunc global IInkDisp_ClipboardCopyWithRectangle 28 sptr,int,int,sptr #comfunc global IInkDisp_ClipboardCopy 29 sptr,int,int,sptr #comfunc global IInkDisp_CanPaste 30 sptr,var #comfunc global IInkDisp_ClipboardPaste 31 int,int,sptr,sptr ; ※数字は 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_IInkDisp "{9D398FA0-C4E2-4FCD-9973-975CAAF47EA6}" #usecom global IInkDisp IID_IInkDisp "{937C1A34-151D-4610-9CA6-A8CC9BDB5D83}" #comfunc global IInkDisp_get_Strokes 7 sptr #comfunc global IInkDisp_get_ExtendedProperties 8 sptr #comfunc global IInkDisp_get_Dirty 9 sptr #comfunc global IInkDisp_put_Dirty 10 int #comfunc global IInkDisp_get_CustomStrokes 11 sptr #comfunc global IInkDisp_GetBoundingBox 12 int,sptr #comfunc global IInkDisp_DeleteStrokes 13 sptr #comfunc global IInkDisp_DeleteStroke 14 sptr #comfunc global IInkDisp_ExtractStrokes 15 sptr,int,sptr #comfunc global IInkDisp_ExtractWithRectangle 16 sptr,int,sptr #comfunc global IInkDisp_Clip 17 sptr #comfunc global IInkDisp_Clone 18 sptr #comfunc global IInkDisp_HitTestCircle 19 int,int,float,sptr #comfunc global IInkDisp_HitTestWithRectangle 20 sptr,float,sptr #comfunc global IInkDisp_HitTestWithLasso 21 int,float,sptr,sptr #comfunc global IInkDisp_NearestPoint 22 int,int,sptr,sptr,sptr #comfunc global IInkDisp_CreateStrokes 23 int,sptr #comfunc global IInkDisp_AddStrokesAtRectangle 24 sptr,sptr #comfunc global IInkDisp_Save 25 int,int,sptr #comfunc global IInkDisp_Load 26 int #comfunc global IInkDisp_CreateStroke 27 int,int,sptr #comfunc global IInkDisp_ClipboardCopyWithRectangle 28 sptr,int,int,sptr #comfunc global IInkDisp_ClipboardCopy 29 sptr,int,int,sptr #comfunc global IInkDisp_CanPaste 30 sptr,sptr #comfunc global IInkDisp_ClipboardPaste 31 int,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。