Win32 API 日本語リファレンス
ホームUI.Input.Touch › IManipulationProcessor

IManipulationProcessor

COM
IIDa22ac519-8300-48a0-bef4-f1be8737dba4継承元IUnknown自前メソッド開始 vtbl3

メソッド 21

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

vtbl 3 HRESULT get_SupportedManipulations(MANIPULATION_PROCESSOR_MANIPULATIONS* manipulations)
manipulationsMANIPULATION_PROCESSOR_MANIPULATIONS*outサポートする操作の種別(MANIPULATION_PROCESSOR_MANIPULATIONS)を受け取る。
vtbl 4 HRESULT put_SupportedManipulations(MANIPULATION_PROCESSOR_MANIPULATIONS manipulations)
manipulationsMANIPULATION_PROCESSOR_MANIPULATIONSinサポートする操作の種別(MANIPULATION_PROCESSOR_MANIPULATIONS)を指定する。
vtbl 5 HRESULT get_PivotPointX(FLOAT* pivotPointX)
pivotPointXFLOAT*out回転の中心点(ピボット)の X 座標を受け取る。
vtbl 6 HRESULT put_PivotPointX(FLOAT pivotPointX)
pivotPointXFLOATin回転の中心点(ピボット)の X 座標を指定する。
vtbl 7 HRESULT get_PivotPointY(FLOAT* pivotPointY)
pivotPointYFLOAT*out回転の中心点(ピボット)の Y 座標を受け取る。
vtbl 8 HRESULT put_PivotPointY(FLOAT pivotPointY)
pivotPointYFLOATin回転の中心点(ピボット)の Y 座標を指定する。
vtbl 9 HRESULT get_PivotRadius(FLOAT* pivotRadius)
pivotRadiusFLOAT*out回転判定に用いるピボット半径を受け取る。
vtbl 10 HRESULT put_PivotRadius(FLOAT pivotRadius)
pivotRadiusFLOATin回転判定に用いるピボット半径を指定する。
vtbl 11 HRESULT CompleteManipulation()
vtbl 12 HRESULT ProcessDown(DWORD manipulatorId, FLOAT x, FLOAT y)
manipulatorIdDWORDin操作点(指など)を識別する ID を指定する。
xFLOATin接触開始位置の X 座標を指定する。
yFLOATin接触開始位置の Y 座標を指定する。
vtbl 13 HRESULT ProcessMove(DWORD manipulatorId, FLOAT x, FLOAT y)
manipulatorIdDWORDin操作点(指など)を識別する ID を指定する。
xFLOATin移動位置の X 座標を指定する。
yFLOATin移動位置の Y 座標を指定する。
vtbl 14 HRESULT ProcessUp(DWORD manipulatorId, FLOAT x, FLOAT y)
manipulatorIdDWORDin操作点(指など)を識別する ID を指定する。
xFLOATin接触終了位置の X 座標を指定する。
yFLOATin接触終了位置の Y 座標を指定する。
vtbl 15 HRESULT ProcessDownWithTime(DWORD manipulatorId, FLOAT x, FLOAT y, DWORD timestamp)
manipulatorIdDWORDin操作点(指など)を識別する ID を指定する。
xFLOATin接触開始位置の X 座標を指定する。
yFLOATin接触開始位置の Y 座標を指定する。
timestampDWORDinイベント発生時のタイムスタンプ(ミリ秒)を指定する。
vtbl 16 HRESULT ProcessMoveWithTime(DWORD manipulatorId, FLOAT x, FLOAT y, DWORD timestamp)
manipulatorIdDWORDin操作点(指など)を識別する ID を指定する。
xFLOATin移動位置の X 座標を指定する。
yFLOATin移動位置の Y 座標を指定する。
timestampDWORDinイベント発生時のタイムスタンプ(ミリ秒)を指定する。
vtbl 17 HRESULT ProcessUpWithTime(DWORD manipulatorId, FLOAT x, FLOAT y, DWORD timestamp)
manipulatorIdDWORDin操作点(指など)を識別する ID を指定する。
xFLOATin接触終了位置の X 座標を指定する。
yFLOATin接触終了位置の Y 座標を指定する。
timestampDWORDinイベント発生時のタイムスタンプ(ミリ秒)を指定する。
vtbl 18 HRESULT GetVelocityX(FLOAT* velocityX)
velocityXFLOAT*out現在の X 方向の速度を受け取る。
vtbl 19 HRESULT GetVelocityY(FLOAT* velocityY)
velocityYFLOAT*out現在の Y 方向の速度を受け取る。
vtbl 20 HRESULT GetExpansionVelocity(FLOAT* expansionVelocity)
expansionVelocityFLOAT*out現在の拡張速度を受け取る。
vtbl 21 HRESULT GetAngularVelocity(FLOAT* angularVelocity)
angularVelocityFLOAT*out現在の角速度を受け取る。
vtbl 22 HRESULT get_MinimumScaleRotateRadius(FLOAT* minRadius)
minRadiusFLOAT*out拡大縮小・回転を有効とする最小半径を受け取る。
vtbl 23 HRESULT put_MinimumScaleRotateRadius(FLOAT minRadius)
minRadiusFLOATin拡大縮小・回転を有効とする最小半径を指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IManipulationProcessor "{A22AC519-8300-48A0-BEF4-F1BE8737DBA4}"
#usecom global IManipulationProcessor IID_IManipulationProcessor "{597D4FB0-47FD-4AFF-89B9-C6CFAE8CF08E}"
#comfunc global IManipulationProcessor_get_SupportedManipulations    3 var
#comfunc global IManipulationProcessor_put_SupportedManipulations    4 int
#comfunc global IManipulationProcessor_get_PivotPointX               5 var
#comfunc global IManipulationProcessor_put_PivotPointX               6 float
#comfunc global IManipulationProcessor_get_PivotPointY               7 var
#comfunc global IManipulationProcessor_put_PivotPointY               8 float
#comfunc global IManipulationProcessor_get_PivotRadius               9 var
#comfunc global IManipulationProcessor_put_PivotRadius               10 float
#comfunc global IManipulationProcessor_CompleteManipulation          11
#comfunc global IManipulationProcessor_ProcessDown                   12 int,float,float
#comfunc global IManipulationProcessor_ProcessMove                   13 int,float,float
#comfunc global IManipulationProcessor_ProcessUp                     14 int,float,float
#comfunc global IManipulationProcessor_ProcessDownWithTime           15 int,float,float,int
#comfunc global IManipulationProcessor_ProcessMoveWithTime           16 int,float,float,int
#comfunc global IManipulationProcessor_ProcessUpWithTime             17 int,float,float,int
#comfunc global IManipulationProcessor_GetVelocityX                  18 var
#comfunc global IManipulationProcessor_GetVelocityY                  19 var
#comfunc global IManipulationProcessor_GetExpansionVelocity          20 var
#comfunc global IManipulationProcessor_GetAngularVelocity            21 var
#comfunc global IManipulationProcessor_get_MinimumScaleRotateRadius  22 var
#comfunc global IManipulationProcessor_put_MinimumScaleRotateRadius  23 float
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。