ホーム › Media.DirectShow.Tv › IMSVidPlayback
IMSVidPlayback
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。メソッド 14
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
vtbl 18 HRESULT get_EnableResetOnStop(VARIANT_BOOL* pVal)
| pVal | VARIANT_BOOL* | out | 停止時に位置をリセットするかを受け取るVARIANT_BOOL出力。 |
vtbl 19 HRESULT put_EnableResetOnStop(VARIANT_BOOL newVal)
| newVal | VARIANT_BOOL | in | 停止時に位置をリセットするか。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)
| fBackwards | VARIANT_BOOL | in | 後方コマ送りが可能か問い合わせるか。VARIANT_TRUEで後方を指定するVARIANT_BOOL。 |
| pfCan | VARIANT_BOOL* | out | 指定方向へのコマ送りが可能かを受け取るVARIANT_BOOL出力。 |
| lStep | INT | in | 進めるフレーム数。INTで指定する。 |
| plRate | DOUBLE | in | 再生速度倍率。1.0が標準のDOUBLEで指定する。 |
| plRate | DOUBLE* | out | 現在の再生速度倍率を受け取るDOUBLE出力。 |
| lPosition | INT | in | 再生位置を設定するINT。単位はPositionMode設定に依存する。 |
| lPosition | INT* | out | 現在の再生位置を受け取るINT出力。単位はPositionMode設定に依存する。 |
vtbl 29 HRESULT put_PositionMode(PositionModeList lPositionMode)
| lPositionMode | PositionModeList | in | 位置値の単位/モードを指定するPositionModeList列挙値。 |
vtbl 30 HRESULT get_PositionMode(PositionModeList* lPositionMode)
| lPositionMode | PositionModeList* | out | 現在の位置モードを受け取るPositionModeList列挙値の出力。 |
| lLength | INT* | 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 不要)。#define global IID_IMSVidPlayback "{37B03538-A4C8-11D2-B634-00C04F79498E}" #usecom global IMSVidPlayback IID_IMSVidPlayback "{}" #comfunc global IMSVidPlayback_get_EnableResetOnStop 18 sptr #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,sptr #comfunc global IMSVidPlayback_Step 24 int #comfunc global IMSVidPlayback_put_Rate 25 double #comfunc global IMSVidPlayback_get_Rate 26 sptr #comfunc global IMSVidPlayback_put_CurrentPosition 27 int #comfunc global IMSVidPlayback_get_CurrentPosition 28 sptr #comfunc global IMSVidPlayback_put_PositionMode 29 int #comfunc global IMSVidPlayback_get_PositionMode 30 sptr #comfunc global IMSVidPlayback_get_Length 31 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。