ホーム › Media.Multimedia › IGetFrame
IGetFrame
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 void* GetFrame(INT lPos)
| lPos | INT | in | 取得するフレームのサンプル位置。DIBへのポインタを返す。 |
| lStart | INT | in | フレーム抽出を開始するサンプル位置。 |
| lEnd | INT | in | フレーム抽出を終了するサンプル位置。 |
| lRate | INT | in | 抽出時の再生速度を示すレート。1000を等倍とする。 |
vtbl 5 HRESULT End()
| lpbi | BITMAPINFOHEADER* | in | 出力するDIBの形式を指定するBITMAPINFOHEADER。NULLで既定。 |
| lpBits | void* | inoptional | 出力先ビットを指定するバッファ。NULLで内部確保。 |
| x | INT | in | 切り出し領域の左上X座標。 |
| y | INT | in | 切り出し領域の左上Y座標。 |
| dx | INT | in | 切り出し領域の幅。 |
| dy | INT | in | 切り出し領域の高さ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IGetFrame "{00020023-0000-0000-C000-000000000046}" #usecom global IGetFrame IID_IGetFrame "{}" #comfunc global IGetFrame_GetFrame 3 int #comfunc global IGetFrame_Begin 4 int,int,int #comfunc global IGetFrame_End 5 #comfunc global IGetFrame_SetFormat 6 var,sptr,int,int,int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IGetFrame "{00020023-0000-0000-C000-000000000046}" #usecom global IGetFrame IID_IGetFrame "{}" #comfunc global IGetFrame_GetFrame 3 int #comfunc global IGetFrame_Begin 4 int,int,int #comfunc global IGetFrame_End 5 #comfunc global IGetFrame_SetFormat 6 sptr,sptr,int,int,int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。