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

IMFCameraControlDefaultsCollection

COM
IID92d43d0f-54a8-4bae-96da-356d259a5c26継承元IMFAttributes自前メソッド開始 vtbl33

公式ドキュメント

カメラコントロールのコレクションを表します。

解説(Remarks)

IMFCameraControlDefaults は、コレクション内のコントロールの既定のコントロール値を指定するために使用します。IMFCameraConfigurationManager を使用すると、コレクションを既定のコントロール値のセットとして保存でき、ユーザーごとに異なる既定のコントロール値のセットを提供するといったシナリオを実現できます。

メソッド 6

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

vtbl 33 DWORD GetControlCount()

コントロール既定値コレクションに現在含まれているコントロールの数を取得します。

戻り値

コレクション内のコントロールの数を示す ULONG。

vtbl 34 HRESULT GetControl(DWORD index, IMFCameraControlDefaults** configuration)

指定した 0 から始まるインデックスを使用して、コレクションからコントロールを取得します。

indexDWORDin取得するコントロールのインデックス。
configurationIMFCameraControlDefaults**out取得したコントロールを表す IMFCameraControlDefaults インスタンスへのポインターを受け取ります。

戻り値

HRESULT 値。次の値を含みます。

説明
S_OK 成功。
MF_E_INVALIDINDEX インデックスが許容範囲外でした。

解説(Remarks)

指定するインデックスは、GetControlCount が返す値より小さくする必要があります。

vtbl 35 HRESULT GetOrAddExtendedControl(MF_CAMERA_CONTROL_CONFIGURATION_TYPE configType, DWORD constrolId, DWORD streamId, DWORD dataSize, IMFCameraControlDefaults** defaults)

新しい拡張カメラコントロールをカメラコントロールコレクションに追加します。

configTypeMF_CAMERA_CONTROL_CONFIGURATION_TYPEinコントロール値をストリーミング開始前に設定する必要があるか、ストリーミング開始後に設定する必要があるかを指定する MF_CAMERA_CONTROL_CONFIGURATION_TYPE の値。
constrolIdDWORDinコレクションに追加するコントロールの ID。この値は、KSPROPERTYSETID_ExtendedCameraControl プロパティセット内の ID である必要があります。
streamIdDWORDinコントロールに関連付けられたストリームの ID。このパラメーターはピンレベルのコントロールでのみ使用されます。それ以外の場合、この値は無視されます。
dataSizeDWORDinコントロールのデータペイロードのサイズ(バイト単位)。
defaultsIMFCameraControlDefaults**out追加されたコントロールを表す IMFCameraControlDefaults インスタンスへのポインターを受け取ります。

戻り値

HRESULT。次の値を含みます。

説明
S_OK 成功。
MF_E_INVALIDREQUEST 指定されたコントロール ID が KSPROPERTYSETID_ExtendedCameraControl プロパティセットに含まれていません。

解説(Remarks)

データペイロードのサイズはコントロールによって異なる場合があります。dataSize の値は、コントロールが必要なバッファーを確保できるよう、コントロールのペイロードスキーマに対して有効である必要があります。

vtbl 36 HRESULT GetOrAddControl(MF_CAMERA_CONTROL_CONFIGURATION_TYPE configType, GUID* controlSet, DWORD constrolId, DWORD controlSize, DWORD dataSize, IMFCameraControlDefaults** defaults)

新しいカスタムカメラコントロールをカメラコントロールコレクションに追加します。

configTypeMF_CAMERA_CONTROL_CONFIGURATION_TYPEinコントロール値をストリーミング開始前に設定する必要があるか、ストリーミング開始後に設定する必要があるかを指定する MF_CAMERA_CONTROL_CONFIGURATION_TYPE の値。
controlSetGUID*inコントロールが属するコントロールセットを指定する GUID。controlSetKSPROPERTYSETID_ExtendedCameraControl の場合は、専用の GetOrAddExtendedControl 関数を使用してください。
constrolIdDWORDinコレクションに追加するコントロールの ID。
controlSizeDWORDinコントロールのサイズ(バイト単位)。この値は KSPROPERTY のサイズ以上である必要があります。
dataSizeDWORDinコントロールのデータペイロードのサイズ(バイト単位)。
defaultsIMFCameraControlDefaults**out追加されたコントロールを表す IMFCameraControlDefaults インスタンスへのポインターを受け取ります。

戻り値

HRESULT。次の値を含みます。

説明
S_OK 成功。

解説(Remarks)

カスタムコントロールの場合、controlSetcontrolId は、カメラドライバーベンダーが公開するカスタムコントロール DDI に基づきます。同様に、controlSizedataSize もベンダーが公開する DDI に基づきます。

vtbl 37 HRESULT RemoveControl(GUID* controlSet, DWORD constrolId)

指定されたコントロールセットと ID を持つコントロールをカメラコントロールコレクションから削除します。

controlSetGUID*inコントロールが属するコントロールセットを指定する GUID。
constrolIdDWORDinコレクションから削除するコントロールの ID。

戻り値

成功時は S_OK

vtbl 38 HRESULT RemoveAllControls()

カメラコントロールコレクションからすべてのコントロールを削除します。

戻り値

成功時は S_OK

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IMFCameraControlDefaultsCollection "{92D43D0F-54A8-4BAE-96DA-356D259A5C26}"
#usecom global IMFCameraControlDefaultsCollection IID_IMFCameraControlDefaultsCollection "{}"
#comfunc global IMFCameraControlDefaultsCollection_GetControlCount          33
#comfunc global IMFCameraControlDefaultsCollection_GetControl               34 int,sptr
#comfunc global IMFCameraControlDefaultsCollection_GetOrAddExtendedControl  35 int,int,int,int,sptr
#comfunc global IMFCameraControlDefaultsCollection_GetOrAddControl          36 int,var,int,int,int,sptr
#comfunc global IMFCameraControlDefaultsCollection_RemoveControl            37 var,int
#comfunc global IMFCameraControlDefaultsCollection_RemoveAllControls        38
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。