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

IAMMediaStream

COM
IIDbebe595d-9a6f-11d0-8fde-00c04fd9189d継承元IMediaStream自前メソッド開始 vtbl9

公式ドキュメント

注意 このインターフェイスは非推奨です。

メソッド 5

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

vtbl 9 HRESULT Initialize(IUnknown* pSourceObject, DWORD dwFlags, GUID* PurposeId, STREAM_TYPE StreamType)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。Initialize メソッドは、指定されたストリームの種類と目的 ID を使用して、新しいメディア ストリームを作成し、初期化します。

pSourceObjectIUnknown*inIUnknown ソース オブジェクトへのポインター。
dwFlagsDWORDin

メディア ストリームの動作を変更する値。次の値のうち 1 つ以上を組み合わせたものです。

説明
AMMSF_ADDDEFAULTRENDERER 既定のレンダラーを追加します。
AMMSF_CREATEPEER pStreamObject と同じオブジェクトに基づくピア ストリームを作成します。
AMMSF_NOSTALL Update が呼び出されない場合でもストリームを実行します。
AMMSF_STOPIFNOSAMPLES サンプルが作成されなかった場合、または最後のサンプルが削除された場合に、ストリームを終了します。
PurposeIdGUID*in新しいメディア ストリームの目的 ID。
StreamTypeSTREAM_TYPEin新しいメディア ストリームのメディア タイプを指定する STREAM_TYPE 列挙値。

戻り値

成功した場合は S_OK を返します。必須パラメーターの 1 つ以上が無効な場合は E_POINTER を返します。

解説(Remarks)

dwFlagsAMMSF_ADDDEFAULTRENDERER を指定すると、可能であれば、指定された目的 ID に対応する既定のレンダラーが作成されます。現在サポートされている既定のレンダラーは、DirectSound を使用するオーディオ用のもののみです。この場合、pStreamObject パラメーターは NULL でなければならず、IMultiMediaStream::GetMediaStream メソッドまたは IMultiMediaStream::EnumMediaStreams メソッドの呼び出しでは、このストリームは認識されません。

dwFlagsAMMSF_CREATEPEER を指定すると、pStreamObject を使用してメディア ストリームが作成され、現在のマルチメディア ストリームに追加されます。pStreamObject パラメーターは、ストリームの種類によって異なります。一般に、pStreamObjectIMediaStream オブジェクトを指すことができ、その場合、サンプルの目的 ID と形式を持つストリームが作成されます。IDirectDraw ストリームの場合は、IDirectDraw インターフェイスへのポインターにすることもできます。

dwFlagsAMMSF_STOPIFNOSAMPLES を指定すると、ストリームが終了します。

フラグが設定されていない場合、pStreamObject は次のいずれかになります。

説明
IAMMediaStream オブジェクト このストリームは、マルチメディア ストリーム内のストリームに追加されます。
NULL この場合、必要に応じて、既定の基になるオブジェクトを持つ既定の IMediaStream オブジェクトがストリームに追加されます。
基になるオブジェクトへのポインター これは既定のストリームを構築するために使用されます。ビデオ ストリームの場合は、IDirectDraw ポインターにできます。
vtbl 10 HRESULT SetState(FILTER_STATE State)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetState メソッドは、フィルターの状態を設定します。

StateFILTER_STATEinFILTER_STATE 列挙型で指定される、フィルターの状態を設定します。

戻り値

成功した場合は S_OK を返します。State パラメーターが無効な場合は E_INVALIDARG を返します。

解説(Remarks)

アプリケーションはこのメソッドを呼び出さないでください。

vtbl 11 HRESULT JoinAMMultiMediaStream(IAMMultiMediaStream* pAMMultiMediaStream)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。IAMMultiMediaStream::AddMediaStream メソッドがこのメソッドを呼び出し、指定されたメディア ストリームを現在のマルチメディア ストリームに追加します。

pAMMultiMediaStreamIAMMultiMediaStream*in現在のメディア ストリームの追加先となる IAMMultiMediaStream オブジェクトへのポインター。

戻り値

成功した場合は S_OK を返します。メディア ストリームに既に割り当て済みのストリーム サンプルがある場合は MS_E_SAMPLEALLOC を返します。

解説(Remarks)

指定されたマルチメディア ストリームの参照カウントは、作成時に既に考慮されているため、増やさないでください。

アプリケーションはこのメソッドを呼び出さないでください。

vtbl 12 HRESULT JoinFilter(IMediaStreamFilter* pMediaStreamFilter)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。JoinFilter メソッドは、メディア ストリームを、マルチメディア ストリーム オブジェクトが内部的に使用する Media Stream フィルターに接続します。アプリケーションはこのメソッドを呼び出さないでください。

pMediaStreamFilterIMediaStreamFilter*inフィルターの IMediaStreamFilter インターフェイスへのポインター。

戻り値

成功した場合は S_OK を返します。

vtbl 13 HRESULT JoinFilterGraph(IFilterGraph* pFilterGraph)

注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。JoinFilterGraph メソッドは、メディア ストリーム フィルターをフィルター グラフに接続します。

pFilterGraphIFilterGraph*in指定されたフィルター グラフに追加する、現在のメディア ストリーム フィルターへのポインター。

戻り値

成功した場合は S_OK を返します。pGraphNULL の場合は E_POINTER を返します。

解説(Remarks)

指定されたフィルター グラフの参照カウントは増やさないでください。

アプリケーションはこのメソッドを呼び出さないでください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

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