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

IInkStrokeDisp

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

メソッド 33

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

vtbl 7 HRESULT get_ID(INT* ID)
IDINT*outストロークを一意に識別する ID を受け取るポインタである。
vtbl 8 HRESULT get_BezierPoints(VARIANT* Points)
PointsVARIANT*outストロークを表すベジエ制御点の配列を受け取る VARIANT へのポインタである。
vtbl 9 HRESULT get_DrawingAttributes(IInkDrawingAttributes** DrawAttrs)
DrawAttrsIInkDrawingAttributes**outこのストロークに適用されている描画属性を受け取るポインタである。
vtbl 10 HRESULT putref_DrawingAttributes(IInkDrawingAttributes* DrawAttrs)
DrawAttrsIInkDrawingAttributes*inoptionalこのストロークに適用する描画属性オブジェクトへのポインタである。
vtbl 11 HRESULT get_Ink(IInkDisp** Ink)
InkIInkDisp**outこのストロークが属するインク オブジェクトを受け取るポインタである。
vtbl 12 HRESULT get_ExtendedProperties(IInkExtendedProperties** Properties)
PropertiesIInkExtendedProperties**outこのストロークに関連付けられた拡張プロパティのコレクションを受け取るポインタである。
vtbl 13 HRESULT get_PolylineCusps(VARIANT* Cusps)
CuspsVARIANT*out折れ線近似におけるストロークの尖点(カスプ)の配列を受け取る VARIANT へのポインタである。
vtbl 14 HRESULT get_BezierCusps(VARIANT* Cusps)
CuspsVARIANT*outベジエ表現におけるストロークの尖点(カスプ)の配列を受け取る VARIANT へのポインタである。
vtbl 15 HRESULT get_SelfIntersections(VARIANT* Intersections)
IntersectionsVARIANT*outストローク自身の交差点の配列を受け取る VARIANT へのポインタである。
vtbl 16 HRESULT get_PacketCount(INT* plCount)
plCountINT*outストロークを構成するパケットの個数を受け取るポインタである。
vtbl 17 HRESULT get_PacketSize(INT* plSize)
plSizeINT*out1 パケットあたりのデータ サイズ(プロパティ数)を受け取るポインタである。
vtbl 18 HRESULT get_PacketDescription(VARIANT* PacketDescription)
PacketDescriptionVARIANT*outパケットを構成する各プロパティの GUID 配列を受け取る VARIANT へのポインタである。
vtbl 19 HRESULT get_Deleted(VARIANT_BOOL* Deleted)
DeletedVARIANT_BOOL*outストロークが削除済みであるかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 20 HRESULT GetBoundingBox(InkBoundingBoxMode BoundingBoxMode, IInkRectangle** Rectangle)
BoundingBoxModeInkBoundingBoxModein境界ボックスの算出方法を指定する InkBoundingBoxMode 値である。
RectangleIInkRectangle**outストロークの境界矩形を受け取るポインタである。
vtbl 21 HRESULT FindIntersections(IInkStrokes* Strokes, VARIANT* Intersections)
StrokesIInkStrokes*inoptional交差判定の対象とするストローク コレクションへのポインタである。
IntersectionsVARIANT*outこのストロークと指定ストローク群との交差点の配列を受け取る VARIANT へのポインタである。
vtbl 22 HRESULT GetRectangleIntersections(IInkRectangle* Rectangle, VARIANT* Intersections)
RectangleIInkRectangle*inoptional交差判定を行う矩形へのポインタである。
IntersectionsVARIANT*outストロークと矩形との交差区間の配列を受け取る VARIANT へのポインタである。
vtbl 23 HRESULT Clip(IInkRectangle* Rectangle)
RectangleIInkRectangle*inoptionalストロークを切り取る境界となる矩形へのポインタである。
vtbl 24 HRESULT HitTestCircle(INT X, INT Y, FLOAT Radius, VARIANT_BOOL* Intersects)
XINTinヒット テストを行う円の中心の X 座標(インク空間単位)を指定する。
YINTinヒット テストを行う円の中心の Y 座標(インク空間単位)を指定する。
RadiusFLOATinヒット テストを行う円の半径を指定する。
IntersectsVARIANT_BOOL*outストロークが指定した円と交差するかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 25 HRESULT NearestPoint(INT X, INT Y, FLOAT* Distance, FLOAT* Point)
XINTin基準点の X 座標(インク空間単位)を指定する。
YINTin基準点の Y 座標(インク空間単位)を指定する。
DistanceFLOAT*inout基準点からストローク上の最近点までの距離を受け取るポインタである。
PointFLOAT*outストローク上の最近点の位置(パラメータ値)を受け取るポインタである。
vtbl 26 HRESULT Split(FLOAT SplitAt, IInkStrokeDisp** NewStroke)
SplitAtFLOATinストロークを分割する位置を 0.0〜1.0 の浮動小数点パラメータで指定する。
NewStrokeIInkStrokeDisp**out分割により新たに生成されたストロークを受け取るポインタである。
vtbl 27 HRESULT GetPacketDescriptionPropertyMetrics(LPWSTR PropertyName, INT* Minimum, INT* Maximum, TabletPropertyMetricUnit* Units, FLOAT* Resolution)
PropertyNameLPWSTRinメトリクスを取得するパケット プロパティの GUID 文字列を指定する。
MinimumINT*outプロパティ値の最小値を受け取るポインタである。
MaximumINT*outプロパティ値の最大値を受け取るポインタである。
UnitsTabletPropertyMetricUnit*outプロパティ値の単位を受け取る TabletPropertyMetricUnit へのポインタである。
ResolutionFLOAT*outプロパティ値の分解能を受け取るポインタである。
vtbl 28 HRESULT GetPoints(INT Index, INT Count, VARIANT* Points)
IndexINTin取得を開始する点の 0 から始まるインデックスを指定する。
CountINTin取得する点の数を指定する。-1 を指定すると残りすべてを取得する。
PointsVARIANT*out取得した点の座標配列を受け取る VARIANT へのポインタである。
vtbl 29 HRESULT SetPoints(VARIANT Points, INT Index, INT Count, INT* NumberOfPointsSet)
PointsVARIANTin設定する点の座標配列を格納した VARIANT である。
IndexINTin設定を開始する点の 0 から始まるインデックスを指定する。
CountINTin設定する点の数を指定する。
NumberOfPointsSetINT*out実際に設定された点の数を受け取るポインタである。
vtbl 30 HRESULT GetPacketData(INT Index, INT Count, VARIANT* PacketData)
IndexINTin取得を開始するパケットの 0 から始まるインデックスを指定する。
CountINTin取得するパケットの数を指定する。
PacketDataVARIANT*out取得したパケット データの配列を受け取る VARIANT へのポインタである。
vtbl 31 HRESULT GetPacketValuesByProperty(LPWSTR PropertyName, INT Index, INT Count, VARIANT* PacketValues)
PropertyNameLPWSTRin値を取得するパケット プロパティの GUID 文字列を指定する。
IndexINTin取得を開始するパケットの 0 から始まるインデックスを指定する。
CountINTin取得するパケットの数を指定する。
PacketValuesVARIANT*out指定プロパティのパケット値の配列を受け取る VARIANT へのポインタである。
vtbl 32 HRESULT SetPacketValuesByProperty(LPWSTR bstrPropertyName, VARIANT PacketValues, INT Index, INT Count, INT* NumberOfPacketsSet)
bstrPropertyNameLPWSTRin値を設定するパケット プロパティの GUID 文字列を指定する。
PacketValuesVARIANTin設定するパケット値の配列を格納した VARIANT である。
IndexINTin設定を開始するパケットの 0 から始まるインデックスを指定する。
CountINTin設定するパケットの数を指定する。
NumberOfPacketsSetINT*out実際に設定されたパケットの数を受け取るポインタである。
vtbl 33 HRESULT GetFlattenedBezierPoints(INT FittingError, VARIANT* FlattenedBezierPoints)
FittingErrorINTinベジエ曲線を折れ線へ平坦化する際に許容するフィッティング誤差を指定する。
FlattenedBezierPointsVARIANT*out平坦化された点の座標配列を受け取る VARIANT へのポインタである。
vtbl 34 HRESULT Transform(IInkTransform* Transform, VARIANT_BOOL ApplyOnPenWidth)
TransformIInkTransform*inoptionalストロークに適用する変換オブジェクトへのポインタである。
ApplyOnPenWidthVARIANT_BOOLin変換をペン幅にも適用するかどうかを指定する VARIANT_BOOL である。
vtbl 35 HRESULT ScaleToRectangle(IInkRectangle* Rectangle)
RectangleIInkRectangle*inoptionalストロークを拡大縮小して収める基準となる矩形へのポインタである。
vtbl 36 HRESULT Move(FLOAT HorizontalComponent, FLOAT VerticalComponent)
HorizontalComponentFLOATin水平方向の移動量を指定する。
VerticalComponentFLOATin垂直方向の移動量を指定する。
vtbl 37 HRESULT Rotate(FLOAT Degrees, FLOAT x, FLOAT y)
DegreesFLOATin回転角度を度単位で指定する。
xFLOATin回転中心の X 座標を指定する。
yFLOATin回転中心の Y 座標を指定する。
vtbl 38 HRESULT Shear(FLOAT HorizontalMultiplier, FLOAT VerticalMultiplier)
HorizontalMultiplierFLOATin水平方向のせん断係数を指定する。
VerticalMultiplierFLOATin垂直方向のせん断係数を指定する。
vtbl 39 HRESULT ScaleTransform(FLOAT HorizontalMultiplier, FLOAT VerticalMultiplier)
HorizontalMultiplierFLOATin水平方向の拡大縮小倍率を指定する。
VerticalMultiplierFLOATin垂直方向の拡大縮小倍率を指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IInkStrokeDisp "{43242FEA-91D1-4A72-963E-FBB91829CFA2}"
#usecom global IInkStrokeDisp IID_IInkStrokeDisp "{}"
#comfunc global IInkStrokeDisp_get_ID                               7 var
#comfunc global IInkStrokeDisp_get_BezierPoints                     8 var
#comfunc global IInkStrokeDisp_get_DrawingAttributes                9 sptr
#comfunc global IInkStrokeDisp_putref_DrawingAttributes             10 sptr
#comfunc global IInkStrokeDisp_get_Ink                              11 sptr
#comfunc global IInkStrokeDisp_get_ExtendedProperties               12 sptr
#comfunc global IInkStrokeDisp_get_PolylineCusps                    13 var
#comfunc global IInkStrokeDisp_get_BezierCusps                      14 var
#comfunc global IInkStrokeDisp_get_SelfIntersections                15 var
#comfunc global IInkStrokeDisp_get_PacketCount                      16 var
#comfunc global IInkStrokeDisp_get_PacketSize                       17 var
#comfunc global IInkStrokeDisp_get_PacketDescription                18 var
#comfunc global IInkStrokeDisp_get_Deleted                          19 var
#comfunc global IInkStrokeDisp_GetBoundingBox                       20 int,sptr
#comfunc global IInkStrokeDisp_FindIntersections                    21 sptr,var
#comfunc global IInkStrokeDisp_GetRectangleIntersections            22 sptr,var
#comfunc global IInkStrokeDisp_Clip                                 23 sptr
#comfunc global IInkStrokeDisp_HitTestCircle                        24 int,int,float,var
#comfunc global IInkStrokeDisp_NearestPoint                         25 int,int,var,var
#comfunc global IInkStrokeDisp_Split                                26 float,sptr
#comfunc global IInkStrokeDisp_GetPacketDescriptionPropertyMetrics  27 wstr,var,var,var,var
#comfunc global IInkStrokeDisp_GetPoints                            28 int,int,var
#comfunc global IInkStrokeDisp_SetPoints                            29 int,int,int,var
#comfunc global IInkStrokeDisp_GetPacketData                        30 int,int,var
#comfunc global IInkStrokeDisp_GetPacketValuesByProperty            31 wstr,int,int,var
#comfunc global IInkStrokeDisp_SetPacketValuesByProperty            32 wstr,int,int,int,var
#comfunc global IInkStrokeDisp_GetFlattenedBezierPoints             33 int,var
#comfunc global IInkStrokeDisp_Transform                            34 sptr,int
#comfunc global IInkStrokeDisp_ScaleToRectangle                     35 sptr
#comfunc global IInkStrokeDisp_Move                                 36 float,float
#comfunc global IInkStrokeDisp_Rotate                               37 float,float,float
#comfunc global IInkStrokeDisp_Shear                                38 float,float
#comfunc global IInkStrokeDisp_ScaleTransform                       39 float,float
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。