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

IInkDisp

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

メソッド 25

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

vtbl 7 HRESULT get_Strokes(IInkStrokes** Strokes)
StrokesIInkStrokes**outインクに含まれるすべてのストロークのコレクションを受け取るポインタである。
vtbl 8 HRESULT get_ExtendedProperties(IInkExtendedProperties** Properties)
PropertiesIInkExtendedProperties**outインク オブジェクトに関連付けられた拡張プロパティのコレクションを受け取るポインタである。
vtbl 9 HRESULT get_Dirty(VARIANT_BOOL* Dirty)
DirtyVARIANT_BOOL*out前回の保存以降にインクが変更されたかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 10 HRESULT put_Dirty(VARIANT_BOOL Dirty)
DirtyVARIANT_BOOLinインクの変更フラグ(ダーティ状態)に設定する値を指定する VARIANT_BOOL である。
vtbl 11 HRESULT get_CustomStrokes(IInkCustomStrokes** ppunkInkCustomStrokes)
ppunkInkCustomStrokesIInkCustomStrokes**outインクに含まれる名前付きストローク集合のコレクションを受け取るポインタである。
vtbl 12 HRESULT GetBoundingBox(InkBoundingBoxMode BoundingBoxMode, IInkRectangle** Rectangle)
BoundingBoxModeInkBoundingBoxModein境界ボックスの算出方法を指定する InkBoundingBoxMode 値である。
RectangleIInkRectangle**outインク全体の境界矩形を受け取るポインタである。
vtbl 13 HRESULT DeleteStrokes(IInkStrokes* Strokes)
StrokesIInkStrokes*inoptionalインクから削除するストローク コレクションへのポインタである。
vtbl 14 HRESULT DeleteStroke(IInkStrokeDisp* Stroke)
StrokeIInkStrokeDisp*inoptionalインクから削除する単一のストローク オブジェクトへのポインタである。
vtbl 15 HRESULT ExtractStrokes(IInkStrokes* Strokes, InkExtractFlags ExtractFlags, IInkDisp** ExtractedInk)
StrokesIInkStrokes*inoptional抽出対象とするストローク コレクションへのポインタである。
ExtractFlagsInkExtractFlagsin抽出時の動作(コピーか切り取りか等)を指定する InkExtractFlags 値である。
ExtractedInkIInkDisp**out抽出されたストロークを含む新しいインク オブジェクトを受け取るポインタである。
vtbl 16 HRESULT ExtractWithRectangle(IInkRectangle* Rectangle, InkExtractFlags extractFlags, IInkDisp** ExtractedInk)
RectangleIInkRectangle*inoptional抽出範囲となる矩形へのポインタである。
extractFlagsInkExtractFlagsin抽出時の動作(コピーか切り取りか等)を指定する InkExtractFlags 値である。
ExtractedInkIInkDisp**out矩形内から抽出されたストロークを含む新しいインク オブジェクトを受け取るポインタである。
vtbl 17 HRESULT Clip(IInkRectangle* Rectangle)
RectangleIInkRectangle*inoptionalインクを切り取る境界となる矩形へのポインタである。
vtbl 18 HRESULT Clone(IInkDisp** NewInk)
NewInkIInkDisp**outこのインク オブジェクトの複製を受け取るポインタである。
vtbl 19 HRESULT HitTestCircle(INT X, INT Y, FLOAT radius, IInkStrokes** Strokes)
XINTinヒット テストを行う円の中心の X 座標(インク空間単位)を指定する。
YINTinヒット テストを行う円の中心の Y 座標(インク空間単位)を指定する。
radiusFLOATinヒット テストを行う円の半径を指定する。
StrokesIInkStrokes**out指定した円と交差するストロークのコレクションを受け取るポインタである。
vtbl 20 HRESULT HitTestWithRectangle(IInkRectangle* SelectionRectangle, FLOAT IntersectPercent, IInkStrokes** Strokes)
SelectionRectangleIInkRectangle*inoptionalヒット テストを行う選択矩形へのポインタである。
IntersectPercentFLOATinストロークが選択されたとみなすために必要な矩形との重なり割合(パーセント)を指定する。
StrokesIInkStrokes**out条件を満たすストロークのコレクションを受け取るポインタである。
vtbl 21 HRESULT HitTestWithLasso(VARIANT Points, FLOAT IntersectPercent, VARIANT* LassoPoints, IInkStrokes** Strokes)
PointsVARIANTin投げ縄(ラッソ)を構成する点の座標配列を格納した VARIANT である。
IntersectPercentFLOATinストロークが選択されたとみなすために必要な投げ縄領域との重なり割合(パーセント)を指定する。
LassoPointsVARIANT*inoutoptional実際に使用された投げ縄の点配列を受け取る VARIANT へのポインタである。
StrokesIInkStrokes**out投げ縄内に入ったストロークのコレクションを受け取るポインタである。
vtbl 22 HRESULT NearestPoint(INT X, INT Y, FLOAT* PointOnStroke, FLOAT* DistanceFromPacket, IInkStrokeDisp** Stroke)
XINTin基準点の X 座標(インク空間単位)を指定する。
YINTin基準点の Y 座標(インク空間単位)を指定する。
PointOnStrokeFLOAT*inout最近接ストローク上の最近点の位置(パラメータ値)を受け取るポインタである。
DistanceFromPacketFLOAT*inout基準点から最近点までの距離を受け取るポインタである。
StrokeIInkStrokeDisp**out基準点に最も近いストローク オブジェクトを受け取るポインタである。
vtbl 23 HRESULT CreateStrokes(VARIANT StrokeIds, IInkStrokes** Strokes)
StrokeIdsVARIANTin新しいコレクションに含めるストロークの ID 配列を格納した VARIANT である。
StrokesIInkStrokes**out指定した ID のストロークから成る新しいコレクションを受け取るポインタである。
vtbl 24 HRESULT AddStrokesAtRectangle(IInkStrokes* SourceStrokes, IInkRectangle* TargetRectangle)
SourceStrokesIInkStrokes*inoptional追加元となるストローク コレクションへのポインタである。
TargetRectangleIInkRectangle*inoptional追加したストロークを配置・拡大縮小して収める対象矩形へのポインタである。
vtbl 25 HRESULT Save(InkPersistenceFormat PersistenceFormat, InkPersistenceCompressionMode CompressionMode, VARIANT* Data)
PersistenceFormatInkPersistenceFormatin保存形式(ISF、GIF、Base64 等)を指定する InkPersistenceFormat 値である。
CompressionModeInkPersistenceCompressionModein保存時の圧縮モードを指定する InkPersistenceCompressionMode 値である。
DataVARIANT*outシリアライズされたインク データを受け取る VARIANT へのポインタである。
vtbl 26 HRESULT Load(VARIANT Data)
DataVARIANTin読み込むインクのシリアライズ済みデータを格納した VARIANT である。
vtbl 27 HRESULT CreateStroke(VARIANT PacketData, VARIANT PacketDescription, IInkStrokeDisp** Stroke)
PacketDataVARIANTin新しいストロークを構成するパケット データを格納した VARIANT である。
PacketDescriptionVARIANTinパケットを構成する各プロパティの GUID 配列を格納した VARIANT である。省略時は既定の記述が使用される。
StrokeIInkStrokeDisp**out新たに生成されたストローク オブジェクトを受け取るポインタである。
vtbl 28 HRESULT ClipboardCopyWithRectangle(IInkRectangle* Rectangle, InkClipboardFormats ClipboardFormats, InkClipboardModes ClipboardModes, IDataObject** DataObject)
RectangleIInkRectangle*inoptionalコピー対象とするストロークを含む矩形へのポインタである。
ClipboardFormatsInkClipboardFormatsinクリップボードに格納するデータ形式を指定する InkClipboardFormats 値である。
ClipboardModesInkClipboardModesinコピー時の動作(切り取り・遅延レンダリング等)を指定する InkClipboardModes 値である。
DataObjectIDataObject**outクリップボード用のデータ オブジェクトを受け取るポインタである。
vtbl 29 HRESULT ClipboardCopy(IInkStrokes* strokes, InkClipboardFormats ClipboardFormats, InkClipboardModes ClipboardModes, IDataObject** DataObject)
strokesIInkStrokes*inoptionalクリップボードへコピーするストローク コレクションへのポインタである。
ClipboardFormatsInkClipboardFormatsinクリップボードに格納するデータ形式を指定する InkClipboardFormats 値である。
ClipboardModesInkClipboardModesinコピー時の動作(切り取り・遅延レンダリング等)を指定する InkClipboardModes 値である。
DataObjectIDataObject**outクリップボード用のデータ オブジェクトを受け取るポインタである。
vtbl 30 HRESULT CanPaste(IDataObject* DataObject, VARIANT_BOOL* CanPaste)
DataObjectIDataObject*inoptional貼り付け可否を判定するデータ オブジェクトへのポインタである。NULL の場合はシステム クリップボードを対象とする。
CanPasteVARIANT_BOOL*outインク データを貼り付け可能かどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 31 HRESULT ClipboardPaste(INT x, INT y, IDataObject* DataObject, IInkStrokes** Strokes)
xINTin貼り付け位置の X 座標(インク空間単位)を指定する。
yINTin貼り付け位置の Y 座標(インク空間単位)を指定する。
DataObjectIDataObject*inoptional貼り付け元のデータ オブジェクトへのポインタである。NULL の場合はシステム クリップボードから貼り付ける。
StrokesIInkStrokes**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 不要)。