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

IVMRDeinterlaceControl

COM
IIDbb057577-0db8-4e6a-87a7-1a8c9a505a0f継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

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

vtbl 3 HRESULT GetNumberOfDeinterlaceModes(VMRVideoDesc* lpVideoDescription, DWORD* lpdwNumDeinterlaceModes, GUID* lpDeinterlaceModes)
lpVideoDescriptionVMRVideoDesc*in対象映像の形式を記述するVMRVideoDesc。
lpdwNumDeinterlaceModesDWORD*inout利用可能なデインターレースモード数を受け取る入出力先。
lpDeinterlaceModesGUID*outモードのGUID配列を受け取る出力先。NULLで個数のみ取得。
vtbl 4 HRESULT GetDeinterlaceModeCaps(GUID* lpDeinterlaceMode, VMRVideoDesc* lpVideoDescription, VMRDeinterlaceCaps* lpDeinterlaceCaps)
lpDeinterlaceModeGUID*in機能を問い合わせるデインターレースモードのGUID。
lpVideoDescriptionVMRVideoDesc*in対象映像の形式を記述するVMRVideoDesc。
lpDeinterlaceCapsVMRDeinterlaceCaps*inout該当モードの機能を受け取るVMRDeinterlaceCaps。
vtbl 5 HRESULT GetDeinterlaceMode(DWORD dwStreamID, GUID* lpDeinterlaceMode)
dwStreamIDDWORDin対象とする入力ストリームの番号。
lpDeinterlaceModeGUID*out現在設定されているデインターレースモードGUIDを受け取る出力先。
vtbl 6 HRESULT SetDeinterlaceMode(DWORD dwStreamID, GUID* lpDeinterlaceMode)
dwStreamIDDWORDin対象とする入力ストリームの番号。
lpDeinterlaceModeGUID*in設定するデインターレースモードのGUID。
vtbl 7 HRESULT GetDeinterlacePrefs(DWORD* lpdwDeinterlacePrefs)
lpdwDeinterlacePrefsDWORD*out現在のデインターレース選好フラグを受け取る出力先。
vtbl 8 HRESULT SetDeinterlacePrefs(DWORD dwDeinterlacePrefs)
dwDeinterlacePrefsDWORDinデインターレース方式の選好を示すフラグ(BOB/Weave優先等)。
vtbl 9 HRESULT GetActualDeinterlaceMode(DWORD dwStreamID, GUID* lpDeinterlaceMode)
dwStreamIDDWORDin対象とする入力ストリームの番号。
lpDeinterlaceModeGUID*out実際に適用されているデインターレースモードGUIDを受け取る出力先。

HSP用 COM定義

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

出力引数:
#define global IID_IVMRDeinterlaceControl "{BB057577-0DB8-4E6A-87A7-1A8C9A505A0F}"
#usecom global IVMRDeinterlaceControl IID_IVMRDeinterlaceControl "{}"
#comfunc global IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes  3 var,var,var
#comfunc global IVMRDeinterlaceControl_GetDeinterlaceModeCaps       4 var,var,var
#comfunc global IVMRDeinterlaceControl_GetDeinterlaceMode           5 int,var
#comfunc global IVMRDeinterlaceControl_SetDeinterlaceMode           6 int,var
#comfunc global IVMRDeinterlaceControl_GetDeinterlacePrefs          7 var
#comfunc global IVMRDeinterlaceControl_SetDeinterlacePrefs          8 int
#comfunc global IVMRDeinterlaceControl_GetActualDeinterlaceMode     9 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。