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

IAMMultiMediaStream

COM
IIDbebe595c-9a6f-11d0-8fde-00c04fd9189d継承元IMultiMediaStream自前メソッド開始 vtbl12

メソッド 7

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

vtbl 12 HRESULT Initialize(STREAM_TYPE StreamType, DWORD dwFlags, IGraphBuilder* pFilterGraph)
StreamTypeSTREAM_TYPEin作成するストリームの種別を示すSTREAM_TYPE入力。
dwFlagsDWORDin初期化動作を制御するAMMSF_*フラグ入力。
pFilterGraphIGraphBuilder*in使用する既存のIGraphBuilderへのポインタ入力。NULLで自動生成。
vtbl 13 HRESULT GetFilterGraph(IGraphBuilder** ppGraphBuilder)
ppGraphBuilderIGraphBuilder**out内部で使用中のIGraphBuilderを受け取る出力。NULL可。Releaseが必要。
vtbl 14 HRESULT GetFilter(IMediaStreamFilter** ppFilter)
ppFilterIMediaStreamFilter**out内部のIMediaStreamFilterを受け取る出力。Releaseが必要。
vtbl 15 HRESULT AddMediaStream(IUnknown* pStreamObject, GUID* PurposeId, DWORD dwFlags, IMediaStream** ppNewStream)
pStreamObjectIUnknown*in追加するストリームオブジェクトをIUnknown*で指定する入力。NULL可。
PurposeIdGUID*inストリームの用途を示すGUIDへのポインタ入力。
dwFlagsDWORDinストリーム追加動作を制御するAMMSF_*フラグ入力。
ppNewStreamIMediaStream**out追加されたIMediaStreamを受け取る出力。NULL可。Releaseが必要。
vtbl 16 HRESULT OpenFile(LPWSTR pszFileName, DWORD dwFlags)
pszFileNameLPWSTRin開くメディアファイルのパスを指定するLPWSTR入力。
dwFlagsDWORDinファイルオープン動作を制御するAMMSF_*フラグ入力。
vtbl 17 HRESULT OpenMoniker(IBindCtx* pCtx, IMoniker* pMoniker, DWORD dwFlags)
pCtxIBindCtx*inバインドコンテキストを指定するIBindCtxへのポインタ入力。NULL可。
pMonikerIMoniker*in開くソースを示すIMonikerへのポインタ入力。
dwFlagsDWORDinオープン動作を制御するAMMSF_*フラグ入力。
vtbl 18 HRESULT Render(DWORD dwFlags)
dwFlagsDWORDinレンダリング動作を制御するAMMSF_*フラグ入力。

HSP用 COM定義

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

出力引数:
#define global IID_IAMMultiMediaStream "{BEBE595C-9A6F-11D0-8FDE-00C04FD9189D}"
#usecom global IAMMultiMediaStream IID_IAMMultiMediaStream "{}"
#comfunc global IAMMultiMediaStream_Initialize      12 int,int,sptr
#comfunc global IAMMultiMediaStream_GetFilterGraph  13 sptr
#comfunc global IAMMultiMediaStream_GetFilter       14 sptr
#comfunc global IAMMultiMediaStream_AddMediaStream  15 sptr,var,int,sptr
#comfunc global IAMMultiMediaStream_OpenFile        16 wstr,int
#comfunc global IAMMultiMediaStream_OpenMoniker     17 sptr,sptr,int
#comfunc global IAMMultiMediaStream_Render          18 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。