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

IFilterGraph

COM
IID56a8689f-0ad4-11ce-b03a-0020af0ba770継承元IUnknown自前メソッド開始 vtbl3

メソッド 8

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

vtbl 3 HRESULT AddFilter(IBaseFilter* pFilter, LPWSTR pName)
pFilterIBaseFilter*inグラフに追加するフィルタIBaseFilter。
pNameLPWSTRinフィルタに付与する名前を示す文字列。NULL可で既定名が割り当てられる。
vtbl 4 HRESULT RemoveFilter(IBaseFilter* pFilter)
pFilterIBaseFilter*inグラフから削除するフィルタIBaseFilter。
vtbl 5 HRESULT EnumFilters(IEnumFilters** ppEnum)
ppEnumIEnumFilters**outグラフ内の全フィルタを反復取得する列挙子IEnumFiltersを受け取る出力。
vtbl 6 HRESULT FindFilterByName(LPWSTR pName, IBaseFilter** ppFilter)
pNameLPWSTRin検索するフィルタ名を示す文字列。
ppFilterIBaseFilter**out見つかったフィルタIBaseFilterを受け取る出力。
vtbl 7 HRESULT ConnectDirect(IPin* ppinOut, IPin* ppinIn, AM_MEDIA_TYPE* pmt)
ppinOutIPin*in接続元の出力ピンIPin。
ppinInIPin*in接続先の入力ピンIPin。
pmtAM_MEDIA_TYPE*inoptional接続に使用するメディア型AM_MEDIA_TYPE。NULL可で自動ネゴシエートする。
vtbl 8 HRESULT Reconnect(IPin* ppin)
ppinIPin*in再接続するピンIPin。既存接続を一旦解いて再ネゴシエートする。
vtbl 9 HRESULT Disconnect(IPin* ppin)
ppinIPin*in接続を解除するピンIPin。相手側ピンも併せて切断が必要。
vtbl 10 HRESULT SetDefaultSyncSource()

HSP用 COM定義

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

出力引数:
#define global IID_IFilterGraph "{56A8689F-0AD4-11CE-B03A-0020AF0BA770}"
#usecom global IFilterGraph IID_IFilterGraph "{}"
#comfunc global IFilterGraph_AddFilter             3 sptr,wstr
#comfunc global IFilterGraph_RemoveFilter          4 sptr
#comfunc global IFilterGraph_EnumFilters           5 sptr
#comfunc global IFilterGraph_FindFilterByName      6 wstr,sptr
#comfunc global IFilterGraph_ConnectDirect         7 sptr,sptr,var
#comfunc global IFilterGraph_Reconnect             8 sptr
#comfunc global IFilterGraph_Disconnect            9 sptr
#comfunc global IFilterGraph_SetDefaultSyncSource  10
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。