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

IAMMediaTypeStream

COM
IIDab6b4afa-f6e4-11d0-900d-00c04fd9189d継承元IMediaStream自前メソッド開始 vtbl9

メソッド 5

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

vtbl 9 HRESULT GetFormat(AM_MEDIA_TYPE* pMediaType, DWORD dwFlags)
pMediaTypeAM_MEDIA_TYPE*out現在のメディア型を受け取るAM_MEDIA_TYPE構造体への出力。
dwFlagsDWORDin形式取得動作を制御するフラグ入力。通常は0。
vtbl 10 HRESULT SetFormat(AM_MEDIA_TYPE* pMediaType, DWORD dwFlags)
pMediaTypeAM_MEDIA_TYPE*in設定するメディア型を指定するAM_MEDIA_TYPE構造体への入力。
dwFlagsDWORDin形式設定動作を制御するフラグ入力。通常は0。
vtbl 11 HRESULT CreateSample(INT lSampleSize, BYTE* pbBuffer, DWORD dwFlags, IUnknown* pUnkOuter, IAMMediaTypeSample** ppAMMediaTypeSample)
lSampleSizeINTin作成するサンプルのバッファサイズ(バイト)をINTで指定する入力。
pbBufferBYTE*inサンプルが使用する既存バッファへのポインタ入力。NULLで内部確保。
dwFlagsDWORDinサンプル作成動作を制御するフラグ入力。
pUnkOuterIUnknown*inアグリゲーション用の外部IUnknownへのポインタ入力。不要ならNULL。
ppAMMediaTypeSampleIAMMediaTypeSample**out作成されたIAMMediaTypeSampleを受け取る出力。Releaseが必要。
vtbl 12 HRESULT GetStreamAllocatorRequirements(ALLOCATOR_PROPERTIES* pProps)
pPropsALLOCATOR_PROPERTIES*outストリームのアロケータ要件を受け取るALLOCATOR_PROPERTIES構造体への出力。
vtbl 13 HRESULT SetStreamAllocatorRequirements(ALLOCATOR_PROPERTIES* pProps)
pPropsALLOCATOR_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 指定が可能。