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

IStrokeBuilder

COM
IIDa5fd4e2d-c44b-4092-9177-260905eb672b継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT CreateStroke(DWORD cPktBuffLength, INT* pPackets, DWORD cPacketProperties, PACKET_PROPERTY* pPacketProperties, FLOAT fInkToDeviceScaleX, FLOAT fInkToDeviceScaleY, IInkStrokeDisp** ppIInkStroke)
cPktBuffLengthDWORDinパケットバッファに含まれる要素数(長さ)を指定する。
pPacketsINT*inストロークを構成するパケットデータ配列へのポインタである。
cPacketPropertiesDWORDinパケットプロパティの数を指定する。
pPacketPropertiesPACKET_PROPERTY*inパケットの各プロパティを記述する PACKET_PROPERTY 配列へのポインタである。
fInkToDeviceScaleXFLOATinインク座標からデバイス座標への X 方向の変換倍率を指定する。
fInkToDeviceScaleYFLOATinインク座標からデバイス座標への Y 方向の変換倍率を指定する。
ppIInkStrokeIInkStrokeDisp**inout作成されたインクストロークを表す IInkStrokeDisp へのポインタを受け取る出力ポインタである。
vtbl 4 HRESULT BeginStroke(DWORD tcid, DWORD sid, INT* pPacket, DWORD cPacketProperties, PACKET_PROPERTY* pPacketProperties, FLOAT fInkToDeviceScaleX, FLOAT fInkToDeviceScaleY, IInkStrokeDisp** ppIInkStroke)
tcidDWORDinストロークが属するタブレットコンテキスト ID を指定する。
sidDWORDinストロークを生成するスタイラス ID を指定する。
pPacketINT*in最初のパケットデータへのポインタである。
cPacketPropertiesDWORDinパケットプロパティの数を指定する。
pPacketPropertiesPACKET_PROPERTY*inパケットの各プロパティを記述する PACKET_PROPERTY 配列へのポインタである。
fInkToDeviceScaleXFLOATinインク座標からデバイス座標への X 方向の変換倍率を指定する。
fInkToDeviceScaleYFLOATinインク座標からデバイス座標への Y 方向の変換倍率を指定する。
ppIInkStrokeIInkStrokeDisp**inoutoptional開始されたインクストロークを表す IInkStrokeDisp へのポインタを受け取る出力ポインタである。
vtbl 5 HRESULT AppendPackets(DWORD tcid, DWORD sid, DWORD cPktBuffLength, INT* pPackets)
tcidDWORDin対象ストロークが属するタブレットコンテキスト ID を指定する。
sidDWORDin対象ストロークのスタイラス ID を指定する。
cPktBuffLengthDWORDin追加するパケットバッファの要素数(長さ)を指定する。
pPacketsINT*inストロークに追加するパケットデータ配列へのポインタである。
vtbl 6 HRESULT EndStroke(DWORD tcid, DWORD sid, IInkStrokeDisp** ppIInkStroke, RECT* pDirtyRect)
tcidDWORDin終了するストロークが属するタブレットコンテキスト ID を指定する。
sidDWORDin終了するストロークのスタイラス ID を指定する。
ppIInkStrokeIInkStrokeDisp**inout完成したインクストロークを表す IInkStrokeDisp へのポインタを受け取る出力ポインタである。
pDirtyRectRECT*inout再描画が必要となる無効領域の矩形を受け取る出力ポインタである。
vtbl 7 HRESULT get_Ink(IInkDisp** ppiInkObj)
ppiInkObjIInkDisp**outストロークが追加されるインクオブジェクトを表す IInkDisp へのポインタを受け取る出力ポインタである。
vtbl 8 HRESULT putref_Ink(IInkDisp* piInkObj)
piInkObjIInkDisp*inoptionalストロークの追加先として設定するインクオブジェクトを表す IInkDisp へのポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IStrokeBuilder "{A5FD4E2D-C44B-4092-9177-260905EB672B}"
#usecom global IStrokeBuilder IID_IStrokeBuilder "{E810CEE7-6E51-4CB0-AA3A-0B985B70DAF7}"
#comfunc global IStrokeBuilder_CreateStroke   3 int,var,int,var,float,float,sptr
#comfunc global IStrokeBuilder_BeginStroke    4 int,int,var,int,var,float,float,sptr
#comfunc global IStrokeBuilder_AppendPackets  5 int,int,int,var
#comfunc global IStrokeBuilder_EndStroke      6 int,int,sptr,var
#comfunc global IStrokeBuilder_get_Ink        7 sptr
#comfunc global IStrokeBuilder_putref_Ink     8 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。