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

IEncoderAPI

COM
IID70423839-6acc-4b23-b079-21dbf08156a5継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

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

vtbl 3 HRESULT IsSupported(GUID* Api)
ApiGUID*inサポート有無を問い合わせるエンコーダ設定項目のGUID。
vtbl 4 HRESULT IsAvailable(GUID* Api)
ApiGUID*in現在利用可能か問い合わせるエンコーダ設定項目のGUID。
vtbl 5 HRESULT GetParameterRange(GUID* Api, VARIANT* ValueMin, VARIANT* ValueMax, VARIANT* SteppingDelta)
ApiGUID*in範囲を取得する設定項目のGUID。
ValueMinVARIANT*out取り得る最小値を受け取るVARIANT。
ValueMaxVARIANT*out取り得る最大値を受け取るVARIANT。
SteppingDeltaVARIANT*out値の刻み幅を受け取るVARIANT。
vtbl 6 HRESULT GetParameterValues(GUID* Api, VARIANT** Values, DWORD* ValuesCount)
ApiGUID*in離散値集合を取得する設定項目のGUID。
ValuesVARIANT**out取り得る値の配列を受け取る出力先。呼び出し側でCoTaskMemFree解放が必要。
ValuesCountDWORD*out返された値の個数を受け取る出力先。
vtbl 7 HRESULT GetDefaultValue(GUID* Api, VARIANT* Value)
ApiGUID*in既定値を取得する設定項目のGUID。
ValueVARIANT*out既定値を受け取るVARIANT。
vtbl 8 HRESULT GetValue(GUID* Api, VARIANT* Value)
ApiGUID*in現在値を取得する設定項目のGUID。
ValueVARIANT*out現在値を受け取るVARIANT。
vtbl 9 HRESULT SetValue(GUID* Api, VARIANT* Value)
ApiGUID*in値を設定する設定項目のGUID。
ValueVARIANT*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 方式にも切替可。