IAMMediaTypeStream
COM公式ドキュメント
注意 このインターフェイスは非推奨です。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetFormat メソッドはストリームのフォーマットを取得します。
| pMediaType | AM_MEDIA_TYPE* | out | ストリームのフォーマットを受け取る AM_MEDIA_TYPE 構造体へのポインター。 |
| dwFlags | DWORD | in | 予約済み。 |
戻り値
以下のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
|
このオブジェクトに関連付けられたストリームがありません。 |
| 成功しました。 |
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetFormat メソッドはストリームのフォーマットを設定します。
| pMediaType | AM_MEDIA_TYPE* | in | ストリームのフォーマットを格納した AM_MEDIA_TYPE 構造体へのポインター。 |
| dwFlags | DWORD | in | 予約済み。 |
戻り値
以下のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
|
ストリームは既に別のメディアタイプでサンプルを割り当てています。 |
| 成功しました。 |
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。CreateSample メソッドはストリームサンプルを作成し、必要に応じてサンプルバッファーを指定します。
| lSampleSize | INT | in | サンプルのサイズ。 |
| pbBuffer | BYTE* | in | [省略可能] サンプルデータを格納したバイト配列へのポインター、または NULL。 |
| dwFlags | DWORD | in | 予約済み。 |
| pUnkOuter | IUnknown* | in | [省略可能] ストリームサンプルを集約するオブジェクトのインターフェイスへのポインター。 |
| ppAMMediaTypeSample | IAMMediaTypeSample** | out | 作成されたサンプルへのポインターを受け取る IAMMediaTypeSample インターフェイスポインターのアドレス。 |
戻り値
以下のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| メモリが不足しています。 | |
| NULL ポインター引数です。 | |
| 成功しました。 |
解説(Remarks)
pUnkOuter が非 NULL の場合、新しいストリームサンプルは指定されたオブジェクトに集約されます。サンプルを受け取るフィルターは、集約するオブジェクトがサポートするインターフェイスをそのサンプルに対してクエリできます。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。GetStreamAllocatorRequirements はストリームのアロケーター要件を取得します。このメソッドは現在実装されていません。
| pProps | ALLOCATOR_PROPERTIES* | out | ストリームのアロケーター要件を受け取る ALLOCATOR_PROPERTIES 構造体へのポインター。 |
戻り値
E_FAIL を返します。
注意 このインターフェイスは非推奨です。新しいアプリケーションでは使用しないでください。SetStreamAllocatorRequirements はストリームのアロケーター要件を設定します。このメソッドは現在実装されていません。
| pProps | ALLOCATOR_PROPERTIES* | in | ストリームのアロケーター要件を格納した ALLOCATOR_PROPERTIES 構造体へのポインター。 |
戻り値
E_FAIL を返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAMMediaTypeStream "{AB6B4AFA-F6E4-11D0-900D-00C04FD9189D}" #usecom global IAMMediaTypeStream IID_IAMMediaTypeStream "{}" #comfunc global IAMMediaTypeStream_GetFormat 9 var,int #comfunc global IAMMediaTypeStream_SetFormat 10 var,int #comfunc global IAMMediaTypeStream_CreateSample 11 int,var,int,sptr,sptr #comfunc global IAMMediaTypeStream_GetStreamAllocatorRequirements 12 var #comfunc global IAMMediaTypeStream_SetStreamAllocatorRequirements 13 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IAMMediaTypeStream "{AB6B4AFA-F6E4-11D0-900D-00C04FD9189D}" #usecom global IAMMediaTypeStream IID_IAMMediaTypeStream "{}" #comfunc global IAMMediaTypeStream_GetFormat 9 sptr,int #comfunc global IAMMediaTypeStream_SetFormat 10 sptr,int #comfunc global IAMMediaTypeStream_CreateSample 11 int,sptr,int,sptr,sptr #comfunc global IAMMediaTypeStream_GetStreamAllocatorRequirements 12 sptr #comfunc global IAMMediaTypeStream_SetStreamAllocatorRequirements 13 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。