IAMMediaStream
COM公式ドキュメント
注意 このインターフェイスは非推奨です。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。Initialize メソッドは、指定されたストリームの種類と目的 ID を使用して、新しいメディア ストリームを作成し、初期化します。
| pSourceObject | IUnknown* | in | IUnknown ソース オブジェクトへのポインター。 | ||||||||||
| dwFlags | DWORD | in | メディア ストリームの動作を変更する値。次の値のうち 1 つ以上を組み合わせたものです。
| ||||||||||
| PurposeId | GUID* | in | 新しいメディア ストリームの目的 ID。 | ||||||||||
| StreamType | STREAM_TYPE | in | 新しいメディア ストリームのメディア タイプを指定する STREAM_TYPE 列挙値。 |
戻り値
解説(Remarks)
dwFlags に AMMSF_ADDDEFAULTRENDERER を指定すると、可能であれば、指定された目的 ID に対応する既定のレンダラーが作成されます。現在サポートされている既定のレンダラーは、DirectSound を使用するオーディオ用のもののみです。この場合、pStreamObject パラメーターは NULL でなければならず、IMultiMediaStream::GetMediaStream メソッドまたは IMultiMediaStream::EnumMediaStreams メソッドの呼び出しでは、このストリームは認識されません。
dwFlags に AMMSF_CREATEPEER を指定すると、pStreamObject を使用してメディア ストリームが作成され、現在のマルチメディア ストリームに追加されます。pStreamObject パラメーターは、ストリームの種類によって異なります。一般に、pStreamObject は IMediaStream オブジェクトを指すことができ、その場合、サンプルの目的 ID と形式を持つストリームが作成されます。IDirectDraw ストリームの場合は、IDirectDraw インターフェイスへのポインターにすることもできます。
dwFlags に AMMSF_STOPIFNOSAMPLES を指定すると、ストリームが終了します。
フラグが設定されていない場合、pStreamObject は次のいずれかになります。
| 値 | 説明 |
|---|---|
| IAMMediaStream オブジェクト | このストリームは、マルチメディア ストリーム内のストリームに追加されます。 |
| NULL | この場合、必要に応じて、既定の基になるオブジェクトを持つ既定の IMediaStream オブジェクトがストリームに追加されます。 |
| 基になるオブジェクトへのポインター | これは既定のストリームを構築するために使用されます。ビデオ ストリームの場合は、IDirectDraw ポインターにできます。 |
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetState メソッドは、フィルターの状態を設定します。
| State | FILTER_STATE | in | FILTER_STATE 列挙型で指定される、フィルターの状態を設定します。 |
戻り値
成功した場合は S_OK を返します。State パラメーターが無効な場合は E_INVALIDARG を返します。
解説(Remarks)
アプリケーションはこのメソッドを呼び出さないでください。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。IAMMultiMediaStream::AddMediaStream メソッドがこのメソッドを呼び出し、指定されたメディア ストリームを現在のマルチメディア ストリームに追加します。
| pAMMultiMediaStream | IAMMultiMediaStream* | in | 現在のメディア ストリームの追加先となる IAMMultiMediaStream オブジェクトへのポインター。 |
戻り値
成功した場合は S_OK を返します。メディア ストリームに既に割り当て済みのストリーム サンプルがある場合は MS_E_SAMPLEALLOC を返します。
解説(Remarks)
指定されたマルチメディア ストリームの参照カウントは、作成時に既に考慮されているため、増やさないでください。
アプリケーションはこのメソッドを呼び出さないでください。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。JoinFilter メソッドは、メディア ストリームを、マルチメディア ストリーム オブジェクトが内部的に使用する Media Stream フィルターに接続します。アプリケーションはこのメソッドを呼び出さないでください。
| pMediaStreamFilter | IMediaStreamFilter* | in | フィルターの IMediaStreamFilter インターフェイスへのポインター。 |
戻り値
成功した場合は S_OK を返します。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。JoinFilterGraph メソッドは、メディア ストリーム フィルターをフィルター グラフに接続します。
| pFilterGraph | IFilterGraph* | in | 指定されたフィルター グラフに追加する、現在のメディア ストリーム フィルターへのポインター。 |
戻り値
解説(Remarks)
指定されたフィルター グラフの参照カウントは増やさないでください。
アプリケーションはこのメソッドを呼び出さないでください。
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 指定が可能。#define global IID_IAMMediaStream "{BEBE595D-9A6F-11D0-8FDE-00C04FD9189D}" #usecom global IAMMediaStream IID_IAMMediaStream "{}" #comfunc global IAMMediaStream_Initialize 9 sptr,int,sptr,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が無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。