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

IGraphConfig

COM
IID03a1eb8e-32bf-4245-8502-114d08a9cb88継承元IUnknown自前メソッド開始 vtbl3

メソッド 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)
pOutputPinIPin*in再接続する側の出力ピン。
pInputPinIPin*in再接続する側の入力ピン。
pmtFirstConnectionAM_MEDIA_TYPE*in最初の接続に用いるメディア型。NULLで自動決定。
pUsingFilterIBaseFilter*in両ピン間に挿入するフィルタ。NULL可。
hAbortEventHANDLEin処理中断を要求するイベントハンドル。NULL可。
dwFlagsDWORDin再接続動作を制御するAM_GRAPH_CONFIG_RECONNECT_FLAGS。
vtbl 4 HRESULT Reconfigure(IGraphConfigCallback* pCallback, void* pvContext, DWORD dwFlags, HANDLE hAbortEvent)
pCallbackIGraphConfigCallback*in実際の再構成処理を実装したコールバック。
pvContextvoid*inコールバックへそのまま渡されるユーザー定義コンテキスト。
dwFlagsDWORDin再構成動作を制御するRECONFIG_FLAGS。
hAbortEventHANDLEin処理中断を要求するイベントハンドル。NULL可。
vtbl 5 HRESULT AddFilterToCache(IBaseFilter* pFilter)
pFilterIBaseFilter*inグラフのキャッシュに追加するフィルタ。後で接続候補として再利用される。
vtbl 6 HRESULT EnumCacheFilter(IEnumFilters** pEnum)
pEnumIEnumFilters**outキャッシュ内フィルタを列挙するIEnumFiltersを受け取る出力先。
vtbl 7 HRESULT RemoveFilterFromCache(IBaseFilter* pFilter)
pFilterIBaseFilter*inキャッシュから取り除くフィルタ。
vtbl 8 HRESULT GetStartTime(LONGLONG* prtStart)
prtStartLONGLONG*out次に出力されるサンプルの基準開始時刻(REFERENCE_TIME)を受け取る出力先。
vtbl 9 HRESULT PushThroughData(IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort)
pOutputPinIPin*inデータを押し流す対象の出力ピン。
pConnectionIPinConnection*in終端側の接続を表すIPinConnection。
hEventAbortHANDLEin処理中断を要求するイベントハンドル。NULL可。
vtbl 10 HRESULT SetFilterFlags(IBaseFilter* pFilter, DWORD dwFlags)
pFilterIBaseFilter*inフラグを設定する対象フィルタ。
dwFlagsDWORDin設定するAM_FILTER_FLAGS。再構成時に保持する等を指定する。
vtbl 11 HRESULT GetFilterFlags(IBaseFilter* pFilter, DWORD* pdwFlags)
pFilterIBaseFilter*inフラグを取得する対象フィルタ。
pdwFlagsDWORD*out現在のAM_FILTER_FLAGSを受け取る出力先。
vtbl 12 HRESULT RemoveFilterEx(IBaseFilter* pFilter, DWORD Flags)
pFilterIBaseFilter*inグラフから削除するフィルタ。
FlagsDWORDin削除動作を制御する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 指定が可能。