ホーム › Media.DirectShow › IAMStreamConfig
IAMStreamConfig
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT SetFormat(AM_MEDIA_TYPE* pmt)
| pmt | AM_MEDIA_TYPE* | in | 出力ピンに設定するメディアタイプ(AM_MEDIA_TYPE)を指定する。 |
vtbl 4 HRESULT GetFormat(AM_MEDIA_TYPE** ppmt)
| ppmt | AM_MEDIA_TYPE** | out | 現在の出力メディアタイプを受け取る出力先。DeleteMediaTypeで解放する。 |
| piCount | INT* | out | サポートするフォーマット能力の数を受け取る出力先。 |
| piSize | INT* | out | GetStreamCapsが返す構成構造体のバイトサイズを受け取る出力先。 |
vtbl 6 HRESULT GetStreamCaps(INT iIndex, AM_MEDIA_TYPE** ppmt, BYTE* pSCC)
| iIndex | INT | in | 取得する能力の0始まりインデックス。 |
| ppmt | AM_MEDIA_TYPE** | out | そのインデックスのメディアタイプを受け取る出力先。DeleteMediaTypeで解放する。 |
| pSCC | BYTE* | out | VIDEO/AUDIO_STREAM_CONFIG_CAPS等の能力構造体を受け取るバッファ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IAMStreamConfig "{C6E13340-30AC-11D0-A18C-00A0C9118956}" #usecom global IAMStreamConfig IID_IAMStreamConfig "{}" #comfunc global IAMStreamConfig_SetFormat 3 var #comfunc global IAMStreamConfig_GetFormat 4 var #comfunc global IAMStreamConfig_GetNumberOfCapabilities 5 var,var #comfunc global IAMStreamConfig_GetStreamCaps 6 int,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IAMStreamConfig "{C6E13340-30AC-11D0-A18C-00A0C9118956}" #usecom global IAMStreamConfig IID_IAMStreamConfig "{}" #comfunc global IAMStreamConfig_SetFormat 3 sptr #comfunc global IAMStreamConfig_GetFormat 4 sptr #comfunc global IAMStreamConfig_GetNumberOfCapabilities 5 sptr,sptr #comfunc global IAMStreamConfig_GetStreamCaps 6 int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。