ホーム › UI.TabletPC › IStrokeBuilder
IStrokeBuilder
COMメソッド 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)
| cPktBuffLength | DWORD | in | パケットバッファに含まれる要素数(長さ)を指定する。 |
| pPackets | INT* | in | ストロークを構成するパケットデータ配列へのポインタである。 |
| cPacketProperties | DWORD | in | パケットプロパティの数を指定する。 |
| pPacketProperties | PACKET_PROPERTY* | in | パケットの各プロパティを記述する PACKET_PROPERTY 配列へのポインタである。 |
| fInkToDeviceScaleX | FLOAT | in | インク座標からデバイス座標への X 方向の変換倍率を指定する。 |
| fInkToDeviceScaleY | FLOAT | in | インク座標からデバイス座標への Y 方向の変換倍率を指定する。 |
| ppIInkStroke | IInkStrokeDisp** | inout | 作成されたインクストロークを表す IInkStrokeDisp へのポインタを受け取る出力ポインタである。 |
vtbl 4 HRESULT BeginStroke(DWORD tcid, DWORD sid, INT* pPacket, DWORD cPacketProperties, PACKET_PROPERTY* pPacketProperties, FLOAT fInkToDeviceScaleX, FLOAT fInkToDeviceScaleY, IInkStrokeDisp** ppIInkStroke)
| tcid | DWORD | in | ストロークが属するタブレットコンテキスト ID を指定する。 |
| sid | DWORD | in | ストロークを生成するスタイラス ID を指定する。 |
| pPacket | INT* | in | 最初のパケットデータへのポインタである。 |
| cPacketProperties | DWORD | in | パケットプロパティの数を指定する。 |
| pPacketProperties | PACKET_PROPERTY* | in | パケットの各プロパティを記述する PACKET_PROPERTY 配列へのポインタである。 |
| fInkToDeviceScaleX | FLOAT | in | インク座標からデバイス座標への X 方向の変換倍率を指定する。 |
| fInkToDeviceScaleY | FLOAT | in | インク座標からデバイス座標への Y 方向の変換倍率を指定する。 |
| ppIInkStroke | IInkStrokeDisp** | inoutoptional | 開始されたインクストロークを表す IInkStrokeDisp へのポインタを受け取る出力ポインタである。 |
| tcid | DWORD | in | 対象ストロークが属するタブレットコンテキスト ID を指定する。 |
| sid | DWORD | in | 対象ストロークのスタイラス ID を指定する。 |
| cPktBuffLength | DWORD | in | 追加するパケットバッファの要素数(長さ)を指定する。 |
| pPackets | INT* | in | ストロークに追加するパケットデータ配列へのポインタである。 |
vtbl 6 HRESULT EndStroke(DWORD tcid, DWORD sid, IInkStrokeDisp** ppIInkStroke, RECT* pDirtyRect)
| tcid | DWORD | in | 終了するストロークが属するタブレットコンテキスト ID を指定する。 |
| sid | DWORD | in | 終了するストロークのスタイラス ID を指定する。 |
| ppIInkStroke | IInkStrokeDisp** | inout | 完成したインクストロークを表す IInkStrokeDisp へのポインタを受け取る出力ポインタである。 |
| pDirtyRect | RECT* | inout | 再描画が必要となる無効領域の矩形を受け取る出力ポインタである。 |
| ppiInkObj | IInkDisp** | out | ストロークが追加されるインクオブジェクトを表す IInkDisp へのポインタを受け取る出力ポインタである。 |
| piInkObj | IInkDisp* | 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 指定が可能。#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,sptr,int,sptr,float,float,sptr #comfunc global IStrokeBuilder_BeginStroke 4 int,int,sptr,int,sptr,float,float,sptr #comfunc global IStrokeBuilder_AppendPackets 5 int,int,int,sptr #comfunc global IStrokeBuilder_EndStroke 6 int,int,sptr,sptr #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から自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。