Win32 API 日本語リファレンス
ホームMedia.Multimedia › IGetFrame

IGetFrame

COM
IID00020023-0000-0000-c000-000000000046継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 void* GetFrame(INT lPos)
lPosINTin取得するフレームのサンプル位置。DIBへのポインタを返す。
vtbl 4 HRESULT Begin(INT lStart, INT lEnd, INT lRate)
lStartINTinフレーム抽出を開始するサンプル位置。
lEndINTinフレーム抽出を終了するサンプル位置。
lRateINTin抽出時の再生速度を示すレート。1000を等倍とする。
vtbl 5 HRESULT End()
vtbl 6 HRESULT SetFormat(BITMAPINFOHEADER* lpbi, void* lpBits, INT x, INT y, INT dx, INT dy)
lpbiBITMAPINFOHEADER*in出力するDIBの形式を指定するBITMAPINFOHEADER。NULLで既定。
lpBitsvoid*inoptional出力先ビットを指定するバッファ。NULLで内部確保。
xINTin切り出し領域の左上X座標。
yINTin切り出し領域の左上Y座標。
dxINTin切り出し領域の幅。
dyINTin切り出し領域の高さ。

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 指定が可能。