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

IVMRWindowlessControl

COM
IID0eb1088c-4dcd-46f0-878f-39dae86a51b7継承元IUnknown自前メソッド開始 vtbl3

メソッド 15

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

vtbl 3 HRESULT GetNativeVideoSize(INT* lpWidth, INT* lpHeight, INT* lpARWidth, INT* lpARHeight)
lpWidthINT*out映像本来の幅(ピクセル)を受け取る出力先。
lpHeightINT*out映像本来の高さ(ピクセル)を受け取る出力先。
lpARWidthINT*outアスペクト比の幅成分を受け取る出力先。NULL可。
lpARHeightINT*outアスペクト比の高さ成分を受け取る出力先。NULL可。
vtbl 4 HRESULT GetMinIdealVideoSize(INT* lpWidth, INT* lpHeight)
lpWidthINT*out画質劣化なく表示できる最小幅を受け取る出力先。
lpHeightINT*out画質劣化なく表示できる最小高さを受け取る出力先。
vtbl 5 HRESULT GetMaxIdealVideoSize(INT* lpWidth, INT* lpHeight)
lpWidthINT*out画質劣化なく表示できる最大幅を受け取る出力先。
lpHeightINT*out画質劣化なく表示できる最大高さを受け取る出力先。
vtbl 6 HRESULT SetVideoPosition(RECT* lpSRCRect, RECT* lpDSTRect)
lpSRCRectRECT*in映像から切り出すソース矩形。NULLで全体。
lpDSTRectRECT*inクライアント領域内の表示先矩形。NULLで全体。
vtbl 7 HRESULT GetVideoPosition(RECT* lpSRCRect, RECT* lpDSTRect)
lpSRCRectRECT*out現在のソース矩形を受け取る出力先。
lpDSTRectRECT*out現在の表示先矩形を受け取る出力先。
vtbl 8 HRESULT GetAspectRatioMode(DWORD* lpAspectRatioMode)
lpAspectRatioModeDWORD*out現在のアスペクト比制御モード(VMR_ARMODE)を受け取る出力先。
vtbl 9 HRESULT SetAspectRatioMode(DWORD AspectRatioMode)
AspectRatioModeDWORDinアスペクト比制御モード(VMR_ARMODE)。レターボックス維持等を指定する。
vtbl 10 HRESULT SetVideoClippingWindow(HWND hwnd)
hwndHWNDin映像を描画・クリッピングする対象ウィンドウのハンドル。
vtbl 11 HRESULT RepaintVideo(HWND hwnd, HDC hdc)
hwndHWNDin再描画を要求するウィンドウのハンドル。
hdcHDCin描画に用いるデバイスコンテキスト。WM_PAINT処理で渡す。
vtbl 12 HRESULT DisplayModeChanged()
vtbl 13 HRESULT GetCurrentImage(BYTE** lpDib)
lpDibBYTE**out現在表示中フレームをDIB(BITMAPINFO+ピクセル)として受け取る出力先。CoTaskMemFreeで解放する。
vtbl 14 HRESULT SetBorderColor(COLORREF Clr)
ClrCOLORREFin映像周囲の余白に描く境界色をCOLORREFで指定する。
vtbl 15 HRESULT GetBorderColor(COLORREF* lpClr)
lpClrCOLORREF*out現在の境界色をCOLORREFで受け取る出力先。
vtbl 16 HRESULT SetColorKey(COLORREF Clr)
ClrCOLORREFinオーバーレイ表示に用いるカラーキーをCOLORREFで指定する。
vtbl 17 HRESULT GetColorKey(COLORREF* lpClr)
lpClrCOLORREF*out現在のカラーキーをCOLORREFで受け取る出力先。

HSP用 COM定義

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

出力引数:
#define global IID_IVMRWindowlessControl "{0EB1088C-4DCD-46F0-878F-39DAE86A51B7}"
#usecom global IVMRWindowlessControl IID_IVMRWindowlessControl "{}"
#comfunc global IVMRWindowlessControl_GetNativeVideoSize      3 var,var,var,var
#comfunc global IVMRWindowlessControl_GetMinIdealVideoSize    4 var,var
#comfunc global IVMRWindowlessControl_GetMaxIdealVideoSize    5 var,var
#comfunc global IVMRWindowlessControl_SetVideoPosition        6 var,var
#comfunc global IVMRWindowlessControl_GetVideoPosition        7 var,var
#comfunc global IVMRWindowlessControl_GetAspectRatioMode      8 var
#comfunc global IVMRWindowlessControl_SetAspectRatioMode      9 int
#comfunc global IVMRWindowlessControl_SetVideoClippingWindow  10 sptr
#comfunc global IVMRWindowlessControl_RepaintVideo            11 sptr,sptr
#comfunc global IVMRWindowlessControl_DisplayModeChanged      12
#comfunc global IVMRWindowlessControl_GetCurrentImage         13 var
#comfunc global IVMRWindowlessControl_SetBorderColor          14 int
#comfunc global IVMRWindowlessControl_GetBorderColor          15 var
#comfunc global IVMRWindowlessControl_SetColorKey             16 int
#comfunc global IVMRWindowlessControl_GetColorKey             17 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。