ホーム › Media.DirectShow › IFilterGraph2
IFilterGraph2
COMメソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 18 HRESULT AddSourceFilterForMoniker(IMoniker* pMoniker, IBindCtx* pCtx, LPWSTR lpcwstrFilterName, IBaseFilter** ppFilter)
| pMoniker | IMoniker* | in | ソースとして追加するデバイス等を表すモニカを指定する。 |
| pCtx | IBindCtx* | in | モニカ解決に使うバインドコンテキスト。NULL可。 |
| lpcwstrFilterName | LPWSTR | in | グラフ内で付けるフィルタ名(ワイド文字)。NULL可。 |
| ppFilter | IBaseFilter** | out | 追加されたフィルタを受け取る出力先。 |
vtbl 19 HRESULT ReconnectEx(IPin* ppin, AM_MEDIA_TYPE* pmt)
| ppin | IPin* | in | 再接続するピンを指定する。 |
| pmt | AM_MEDIA_TYPE* | inoptional | 再接続時に使用するメディアタイプ。NULLで従来のタイプを使う。 |
| pPinOut | IPin* | in | レンダリング対象の出力ピンを指定する。 |
| dwFlags | DWORD | in | レンダリング動作を制御するAM_RENDEREX_*フラグ。 |
| pvContext | DWORD* | 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 指定が可能。#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,sptr #comfunc global IFilterGraph2_RenderEx 20 sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。