ホーム › Media.DirectShow › IGraphConfig
IGraphConfig
COMメソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Reconnect(IPin* pOutputPin, IPin* pInputPin, AM_MEDIA_TYPE* pmtFirstConnection, IBaseFilter* pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags)
| pOutputPin | IPin* | in | 再接続する側の出力ピン。 |
| pInputPin | IPin* | in | 再接続する側の入力ピン。 |
| pmtFirstConnection | AM_MEDIA_TYPE* | in | 最初の接続に用いるメディア型。NULLで自動決定。 |
| pUsingFilter | IBaseFilter* | in | 両ピン間に挿入するフィルタ。NULL可。 |
| hAbortEvent | HANDLE | in | 処理中断を要求するイベントハンドル。NULL可。 |
| dwFlags | DWORD | in | 再接続動作を制御するAM_GRAPH_CONFIG_RECONNECT_FLAGS。 |
vtbl 4 HRESULT Reconfigure(IGraphConfigCallback* pCallback, void* pvContext, DWORD dwFlags, HANDLE hAbortEvent)
| pCallback | IGraphConfigCallback* | in | 実際の再構成処理を実装したコールバック。 |
| pvContext | void* | in | コールバックへそのまま渡されるユーザー定義コンテキスト。 |
| dwFlags | DWORD | in | 再構成動作を制御するRECONFIG_FLAGS。 |
| hAbortEvent | HANDLE | in | 処理中断を要求するイベントハンドル。NULL可。 |
vtbl 5 HRESULT AddFilterToCache(IBaseFilter* pFilter)
| pFilter | IBaseFilter* | in | グラフのキャッシュに追加するフィルタ。後で接続候補として再利用される。 |
vtbl 6 HRESULT EnumCacheFilter(IEnumFilters** pEnum)
| pEnum | IEnumFilters** | out | キャッシュ内フィルタを列挙するIEnumFiltersを受け取る出力先。 |
vtbl 7 HRESULT RemoveFilterFromCache(IBaseFilter* pFilter)
| pFilter | IBaseFilter* | in | キャッシュから取り除くフィルタ。 |
| prtStart | LONGLONG* | out | 次に出力されるサンプルの基準開始時刻(REFERENCE_TIME)を受け取る出力先。 |
vtbl 9 HRESULT PushThroughData(IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort)
| pOutputPin | IPin* | in | データを押し流す対象の出力ピン。 |
| pConnection | IPinConnection* | in | 終端側の接続を表すIPinConnection。 |
| hEventAbort | HANDLE | in | 処理中断を要求するイベントハンドル。NULL可。 |
vtbl 10 HRESULT SetFilterFlags(IBaseFilter* pFilter, DWORD dwFlags)
| pFilter | IBaseFilter* | in | フラグを設定する対象フィルタ。 |
| dwFlags | DWORD | in | 設定するAM_FILTER_FLAGS。再構成時に保持する等を指定する。 |
vtbl 11 HRESULT GetFilterFlags(IBaseFilter* pFilter, DWORD* pdwFlags)
| pFilter | IBaseFilter* | in | フラグを取得する対象フィルタ。 |
| pdwFlags | DWORD* | out | 現在のAM_FILTER_FLAGSを受け取る出力先。 |
vtbl 12 HRESULT RemoveFilterEx(IBaseFilter* pFilter, DWORD Flags)
| pFilter | IBaseFilter* | in | グラフから削除するフィルタ。 |
| Flags | DWORD | in | 削除動作を制御するAM_REMOVE_FILTER_FLAGS。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IGraphConfig "{03A1EB8E-32BF-4245-8502-114D08A9CB88}" #usecom global IGraphConfig IID_IGraphConfig "{}" #comfunc global IGraphConfig_Reconnect 3 sptr,sptr,var,sptr,sptr,int #comfunc global IGraphConfig_Reconfigure 4 sptr,sptr,int,sptr #comfunc global IGraphConfig_AddFilterToCache 5 sptr #comfunc global IGraphConfig_EnumCacheFilter 6 sptr #comfunc global IGraphConfig_RemoveFilterFromCache 7 sptr #comfunc global IGraphConfig_GetStartTime 8 var #comfunc global IGraphConfig_PushThroughData 9 sptr,sptr,sptr #comfunc global IGraphConfig_SetFilterFlags 10 sptr,int #comfunc global IGraphConfig_GetFilterFlags 11 sptr,var #comfunc global IGraphConfig_RemoveFilterEx 12 sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IGraphConfig "{03A1EB8E-32BF-4245-8502-114D08A9CB88}" #usecom global IGraphConfig IID_IGraphConfig "{}" #comfunc global IGraphConfig_Reconnect 3 sptr,sptr,sptr,sptr,sptr,int #comfunc global IGraphConfig_Reconfigure 4 sptr,sptr,int,sptr #comfunc global IGraphConfig_AddFilterToCache 5 sptr #comfunc global IGraphConfig_EnumCacheFilter 6 sptr #comfunc global IGraphConfig_RemoveFilterFromCache 7 sptr #comfunc global IGraphConfig_GetStartTime 8 sptr #comfunc global IGraphConfig_PushThroughData 9 sptr,sptr,sptr #comfunc global IGraphConfig_SetFilterFlags 10 sptr,int #comfunc global IGraphConfig_GetFilterFlags 11 sptr,sptr #comfunc global IGraphConfig_RemoveFilterEx 12 sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。