ホーム › Media.DirectShow › IEncoderAPI
IEncoderAPI
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT IsSupported(GUID* Api)
| Api | GUID* | in | サポート有無を問い合わせるエンコーダ設定項目のGUID。 |
vtbl 4 HRESULT IsAvailable(GUID* Api)
| Api | GUID* | in | 現在利用可能か問い合わせるエンコーダ設定項目のGUID。 |
vtbl 5 HRESULT GetParameterRange(GUID* Api, VARIANT* ValueMin, VARIANT* ValueMax, VARIANT* SteppingDelta)
| Api | GUID* | in | 範囲を取得する設定項目のGUID。 |
| ValueMin | VARIANT* | out | 取り得る最小値を受け取るVARIANT。 |
| ValueMax | VARIANT* | out | 取り得る最大値を受け取るVARIANT。 |
| SteppingDelta | VARIANT* | out | 値の刻み幅を受け取るVARIANT。 |
| Api | GUID* | in | 離散値集合を取得する設定項目のGUID。 |
| Values | VARIANT** | out | 取り得る値の配列を受け取る出力先。呼び出し側でCoTaskMemFree解放が必要。 |
| ValuesCount | DWORD* | out | 返された値の個数を受け取る出力先。 |
| Api | GUID* | in | 既定値を取得する設定項目のGUID。 |
| Value | VARIANT* | out | 既定値を受け取るVARIANT。 |
| Api | GUID* | in | 現在値を取得する設定項目のGUID。 |
| Value | VARIANT* | out | 現在値を受け取るVARIANT。 |
| Api | GUID* | in | 値を設定する設定項目のGUID。 |
| Value | VARIANT* | in | 設定する値を格納したVARIANT。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IEncoderAPI "{70423839-6ACC-4B23-B079-21DBF08156A5}" #usecom global IEncoderAPI IID_IEncoderAPI "{}" #comfunc global IEncoderAPI_IsSupported 3 var #comfunc global IEncoderAPI_IsAvailable 4 var #comfunc global IEncoderAPI_GetParameterRange 5 var,var,var,var #comfunc global IEncoderAPI_GetParameterValues 6 var,var,var #comfunc global IEncoderAPI_GetDefaultValue 7 var,var #comfunc global IEncoderAPI_GetValue 8 var,var #comfunc global IEncoderAPI_SetValue 9 var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IEncoderAPI "{70423839-6ACC-4B23-B079-21DBF08156A5}" #usecom global IEncoderAPI IID_IEncoderAPI "{}" #comfunc global IEncoderAPI_IsSupported 3 sptr #comfunc global IEncoderAPI_IsAvailable 4 sptr #comfunc global IEncoderAPI_GetParameterRange 5 sptr,sptr,sptr,sptr #comfunc global IEncoderAPI_GetParameterValues 6 sptr,sptr,sptr #comfunc global IEncoderAPI_GetDefaultValue 7 sptr,sptr #comfunc global IEncoderAPI_GetValue 8 sptr,sptr #comfunc global IEncoderAPI_SetValue 9 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。