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

IMFCameraControlDefaults

COM
IID75510662-b034-48f4-88a7-8de61daa4af9継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

カメラコントロールの既定値を指定するためのメソッドを提供します。

解説(Remarks)

このインターフェイスは IMFCameraControlDefaultsCollection および IMFCameraConfigurationManager と組み合わせて使用し、既定のコントロール値のセットを保存します。これにより、ユーザーごとに異なる既定のコントロール値のセットを提供するといったシナリオが可能になります。

メソッド 4

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

vtbl 3 MF_CAMERA_CONTROL_CONFIGURATION_TYPE GetType()

コントロールの構成タイプを取得します。これは、コントロール値をストリーミング開始前に設定する必要があるか、ストリーミング開始後に設定する必要があるかを示します。

戻り値

コントロールの構成タイプを指定する MF_SENSOR_CONTROL_CONFIGURATION_TYPE 列挙体のメンバー。

解説(Remarks)

一部のセンサーレベルのコントロール(フォーカス、明るさ、ホワイトバランスなど)は、パラメーターを収束させるためにフレームデータを必要とするため、センサーの開始後にのみ設定できます。HDR サポートなどの他のタイプのコントロールは、センサーモードの再プログラミングを必要とするため、センサーが実行状態にないときにのみ構成できます。既知のコントロールが開始前か開始後かは、コントロールの DDI 仕様で指定されています。DDI 仕様でコントロールが開始前コントロールであることが明示的に示されていない場合、呼び出し元はそのコントロールを開始後コントロールとみなす必要があります。

vtbl 4 HRESULT GetRangeInfo(MF_CAMERA_CONTROL_RANGE_INFO* rangeInfo)

カメラコントロールの許容範囲、ステップ値、既定値に関する情報を取得します。

rangeInfoMF_CAMERA_CONTROL_RANGE_INFO*outコントロールの範囲情報を表す MF_CAMERA_CONTROL_RANGE_INFO 構造体へのポインターを受け取ります。

戻り値

次を含む HRESULT:

| Value | Description | | S_OK | 成功 | | MF_E_NOT_FOUND | コントロールが基本的な範囲値をサポートしていません。 |

解説(Remarks)

従来の PROPSETID_VIDCAP_VIDEOPROCAMP および PROPSETID_VIDCAP_CAMERACONTROL コントロールセットは、コントロールを構成できる許容範囲とステップ値、および既定値を提供します。その他のコントロールについては、基になるコントロールが基本的な範囲情報をサポートしているかどうかを把握するのは呼び出し元の責任です。

vtbl 5 HRESULT LockControlData(void** control, DWORD* controlSize, void** data, DWORD* dataSize)

IMFCameraControlDefaults インスタンスに関連付けられたコントロールのデータペイロードを取得し、クライアントがコントロール値を直接変更できるようにします。

controlvoid**outロックされるコントロールへのポインターを受け取ります。
controlSizeDWORD*outcontrol が指す構造体のサイズを受け取ります。
datavoid**outoptionalコントロールのデータペイロードへのポインターを受け取ります。
dataSizeDWORD*outoptionaldataSize が指すバッファーのサイズを受け取ります。

戻り値

成功した場合は S_OK

解説(Remarks)

カスタムコントロールは任意のペイロードスキーマサイズを持つことができるため、control および data パラメーターは型チェックされません。

コントロールを含むコレクションを IMFCameraConfigurationManager::SaveDefaults メソッドに送信する前に、UnlockControlData を呼び出す必要があります。

vtbl 6 HRESULT UnlockControlData()

LockControlData の呼び出しでロックされたコントロールデータバッファーのロックを解除します。

戻り値

成功した場合は S_OK

解説(Remarks)

UnlockControlData を呼び出した後、クライアントはコントロールデータバッファーの内容を変更してはなりません。変更すると未定義の動作になります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IMFCameraControlDefaults "{75510662-B034-48F4-88A7-8DE61DAA4AF9}"
#usecom global IMFCameraControlDefaults IID_IMFCameraControlDefaults "{}"
#comfunc global IMFCameraControlDefaults_GetType            3
#comfunc global IMFCameraControlDefaults_GetRangeInfo       4 var
#comfunc global IMFCameraControlDefaults_LockControlData    5 sptr,var,sptr,var
#comfunc global IMFCameraControlDefaults_UnlockControlData  6
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。