ホーム › Media.DirectShow › IAMMediaTypeStream
IAMMediaTypeStream
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 9 HRESULT GetFormat(AM_MEDIA_TYPE* pMediaType, DWORD dwFlags)
| pMediaType | AM_MEDIA_TYPE* | out | 現在のメディア型を受け取るAM_MEDIA_TYPE構造体への出力。 |
| dwFlags | DWORD | in | 形式取得動作を制御するフラグ入力。通常は0。 |
vtbl 10 HRESULT SetFormat(AM_MEDIA_TYPE* pMediaType, DWORD dwFlags)
| pMediaType | AM_MEDIA_TYPE* | in | 設定するメディア型を指定するAM_MEDIA_TYPE構造体への入力。 |
| dwFlags | DWORD | in | 形式設定動作を制御するフラグ入力。通常は0。 |
vtbl 11 HRESULT CreateSample(INT lSampleSize, BYTE* pbBuffer, DWORD dwFlags, IUnknown* pUnkOuter, IAMMediaTypeSample** ppAMMediaTypeSample)
| lSampleSize | INT | in | 作成するサンプルのバッファサイズ(バイト)をINTで指定する入力。 |
| pbBuffer | BYTE* | in | サンプルが使用する既存バッファへのポインタ入力。NULLで内部確保。 |
| dwFlags | DWORD | in | サンプル作成動作を制御するフラグ入力。 |
| pUnkOuter | IUnknown* | in | アグリゲーション用の外部IUnknownへのポインタ入力。不要ならNULL。 |
| ppAMMediaTypeSample | IAMMediaTypeSample** | out | 作成されたIAMMediaTypeSampleを受け取る出力。Releaseが必要。 |
vtbl 12 HRESULT GetStreamAllocatorRequirements(ALLOCATOR_PROPERTIES* pProps)
| pProps | ALLOCATOR_PROPERTIES* | out | ストリームのアロケータ要件を受け取るALLOCATOR_PROPERTIES構造体への出力。 |
vtbl 13 HRESULT SetStreamAllocatorRequirements(ALLOCATOR_PROPERTIES* pProps)
| pProps | ALLOCATOR_PROPERTIES* | in | 設定するアロケータ要件を指定するALLOCATOR_PROPERTIES構造体への入力。 |
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 指定が可能。