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

IFilterGraph2

COM
IID36b73882-c2c8-11cf-8b46-00805f6cef60継承元IGraphBuilder自前メソッド開始 vtbl18

メソッド 3

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

vtbl 18 HRESULT AddSourceFilterForMoniker(IMoniker* pMoniker, IBindCtx* pCtx, LPWSTR lpcwstrFilterName, IBaseFilter** ppFilter)
pMonikerIMoniker*inソースとして追加するデバイス等を表すモニカを指定する。
pCtxIBindCtx*inモニカ解決に使うバインドコンテキスト。NULL可。
lpcwstrFilterNameLPWSTRinグラフ内で付けるフィルタ名(ワイド文字)。NULL可。
ppFilterIBaseFilter**out追加されたフィルタを受け取る出力先。
vtbl 19 HRESULT ReconnectEx(IPin* ppin, AM_MEDIA_TYPE* pmt)
ppinIPin*in再接続するピンを指定する。
pmtAM_MEDIA_TYPE*inoptional再接続時に使用するメディアタイプ。NULLで従来のタイプを使う。
vtbl 20 HRESULT RenderEx(IPin* pPinOut, DWORD dwFlags, DWORD* pvContext)
pPinOutIPin*inレンダリング対象の出力ピンを指定する。
dwFlagsDWORDinレンダリング動作を制御するAM_RENDEREX_*フラグ。
pvContextDWORD*optional将来拡張用のコンテキスト。現状NULLを指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IFilterGraph2 "{36B73882-C2C8-11CF-8B46-00805F6CEF60}"
#usecom global IFilterGraph2 IID_IFilterGraph2 "{}"
#comfunc global IFilterGraph2_AddSourceFilterForMoniker  18 sptr,sptr,wstr,sptr
#comfunc global IFilterGraph2_ReconnectEx                19 sptr,var
#comfunc global IFilterGraph2_RenderEx                   20 sptr,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。