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

IAMGraphStreams

COM
IID632105fa-072e-11d3-8af9-00c04fb6bd3d継承元IUnknown自前メソッド開始 vtbl3

メソッド 3

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

vtbl 3 HRESULT FindUpstreamInterface(IPin* pPin, GUID* riid, void** ppvInterface, DWORD dwFlags)
pPinIPin*in探索の起点となるピン。このピンから上流方向へ遡って検索する。
riidGUID*in取得したいインターフェイスの識別子IID。
ppvInterfacevoid**out見つかったインターフェイスポインタを受け取る出力先。
dwFlagsDWORDin探索範囲を制御するAM_INTF_SEARCH_FLAGS。レンダラ側やフィルタ側の限定等を指定する。
vtbl 4 HRESULT SyncUsingStreamOffset(BOOL bUseStreamOffset)
bUseStreamOffsetBOOLinストリームオフセットによる同期を有効にするか。TRUEで開始遅延を補正する。
vtbl 5 HRESULT SetMaxGraphLatency(LONGLONG rtMaxGraphLatency)
rtMaxGraphLatencyLONGLONGin許容する最大グラフ遅延。REFERENCE_TIME(100ナノ秒単位)で指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IAMGraphStreams "{632105FA-072E-11D3-8AF9-00C04FB6BD3D}"
#usecom global IAMGraphStreams IID_IAMGraphStreams "{}"
#comfunc global IAMGraphStreams_FindUpstreamInterface  3 sptr,var,sptr,int
#comfunc global IAMGraphStreams_SyncUsingStreamOffset  4 int
#comfunc global IAMGraphStreams_SetMaxGraphLatency     5 int64
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。