Win32 API 日本語リファレンス
ホームMedia.DirectShow.Tv › IMSVidPlayback

IMSVidPlayback

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID37b03538-a4c8-11d2-b634-00c04f79498e継承元IMSVidInputDevice呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl18

メソッド 14

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

vtbl 18 HRESULT get_EnableResetOnStop(VARIANT_BOOL* pVal)
pValVARIANT_BOOL*out停止時に位置をリセットするかを受け取るVARIANT_BOOL出力。
vtbl 19 HRESULT put_EnableResetOnStop(VARIANT_BOOL newVal)
newValVARIANT_BOOLin停止時に位置をリセットするか。VARIANT_TRUEで有効を指定するVARIANT_BOOL。
vtbl 20 HRESULT Run()
vtbl 21 HRESULT Pause()
vtbl 22 HRESULT Stop()
vtbl 23 HRESULT get_CanStep(VARIANT_BOOL fBackwards, VARIANT_BOOL* pfCan)
fBackwardsVARIANT_BOOLin後方コマ送りが可能か問い合わせるか。VARIANT_TRUEで後方を指定するVARIANT_BOOL。
pfCanVARIANT_BOOL*out指定方向へのコマ送りが可能かを受け取るVARIANT_BOOL出力。
vtbl 24 HRESULT Step(INT lStep)
lStepINTin進めるフレーム数。INTで指定する。
vtbl 25 HRESULT put_Rate(DOUBLE plRate)
plRateDOUBLEin再生速度倍率。1.0が標準のDOUBLEで指定する。
vtbl 26 HRESULT get_Rate(DOUBLE* plRate)
plRateDOUBLE*out現在の再生速度倍率を受け取るDOUBLE出力。
vtbl 27 HRESULT put_CurrentPosition(INT lPosition)
lPositionINTin再生位置を設定するINT。単位はPositionMode設定に依存する。
vtbl 28 HRESULT get_CurrentPosition(INT* lPosition)
lPositionINT*out現在の再生位置を受け取るINT出力。単位はPositionMode設定に依存する。
vtbl 29 HRESULT put_PositionMode(PositionModeList lPositionMode)
lPositionModePositionModeListin位置値の単位/モードを指定するPositionModeList列挙値。
vtbl 30 HRESULT get_PositionMode(PositionModeList* lPositionMode)
lPositionModePositionModeList*out現在の位置モードを受け取るPositionModeList列挙値の出力。
vtbl 31 HRESULT get_Length(INT* lLength)
lLengthINT*outメディア全体の長さを受け取るINT出力。単位はPositionMode設定に依存する。

HSP用 COM定義

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

出力引数:
#define global IID_IMSVidPlayback "{37B03538-A4C8-11D2-B634-00C04F79498E}"
#usecom global IMSVidPlayback IID_IMSVidPlayback "{}"
#comfunc global IMSVidPlayback_get_EnableResetOnStop  18 var
#comfunc global IMSVidPlayback_put_EnableResetOnStop  19 int
#comfunc global IMSVidPlayback_Run                    20
#comfunc global IMSVidPlayback_Pause                  21
#comfunc global IMSVidPlayback_Stop                   22
#comfunc global IMSVidPlayback_get_CanStep            23 int,var
#comfunc global IMSVidPlayback_Step                   24 int
#comfunc global IMSVidPlayback_put_Rate               25 double
#comfunc global IMSVidPlayback_get_Rate               26 var
#comfunc global IMSVidPlayback_put_CurrentPosition    27 int
#comfunc global IMSVidPlayback_get_CurrentPosition    28 var
#comfunc global IMSVidPlayback_put_PositionMode       29 int
#comfunc global IMSVidPlayback_get_PositionMode       30 var
#comfunc global IMSVidPlayback_get_Length             31 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。