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

IMFCameraControlNotify

COM
IIDe8f2540d-558a-4449-8b64-4863467a9fe8継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

カメラコントロールの変更に対する通知コールバックを表します。

解説(Remarks)

クライアントは、別のアプリがキャプチャデバイスのカメラ設定を変更したときに通知を受け取るために、このインターフェイスを実装します。実装を MFCreateCameraControlMonitor 関数に渡して、IMFCameraControlMonitor のインスタンスを作成します。

メソッド 2

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

vtbl 3 void OnChange(GUID* controlSet, DWORD id)

カメラコントロールの値が変更されたときに発生します。

controlSetGUID*in変更されたコントロールが属するカメラコントロールセットを指定する GUID。
idDWORDinコントロールセット内で変更されたコントロールの ID。

解説(Remarks)

OnChange イベントが呼び出されるコントロールは、IMFCameraControlMonitor::AddControlSubscription を呼び出して指定します。明示的にサポートされるコントロールには、PROPSETID_VIDCAP_VIDEOPROCAMP および PROPSETID_VIDCAP_CAMERACONTROL 配下のプロパティ、ならびに KSPROPERTYSETID_ExtendedCameraControl が含まれます。controlSet パラメーターに KSPROPERTYSETID_ANYCAMERACONTROL を指定して AddControlSubscription を呼び出した場合、作成されたサブスクリプションは、前述のプロパティセット外のものを含め、あらゆるコントロールの変更に対してコールバックを引き起こします。変更されたコントロールがそれらのセット外にある場合、OnChange コールバックの controlSet パラメーターの値は KSPROPERTYSETID_ANYCAMERACONTROL になります。ただし、明示的にサポートされるプロパティセットについては、controlSet GUID は KSPROPERTYSETID_ANYCAMERACONTROL ではなく、引き続き対応するサポート対象のプロパティセット GUID を返します。返される id パラメーターは、いずれの場合も変更されたコントロールのコントロール ID になります。

このメソッドを実装するコード例については、IMFCameraControlNotify を参照してください。

vtbl 4 void OnError(HRESULT hrStatus)

関連付けられた IMFCameraControlMonitor 内で回復不能なエラーが発生したときに発生します。

hrStatusHRESULTin

エラーに関連付けられた内部エラーコード。想定されるエラー値には次のものが含まれます。

説明
E_OUTOFMEMORY モニターが正しく機能するために利用可能なリソースが不足していました。
MF_INVALID_STATE_ERR メモリ状態の破損が発生しました。

解説(Remarks)

この関数の呼び出しが返された後、システムはクリーンアップを行い、IMFCameraControlNotify への参照を削除します。クライアントは、OnError 通知を受け取った後に IMFCameraControlMonitor::Shutdown を呼び出す必要はありません。

このメソッドを実装するコード例については、IMFCameraControlNotify を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IMFCameraControlNotify "{E8F2540D-558A-4449-8B64-4863467A9FE8}"
#usecom global IMFCameraControlNotify IID_IMFCameraControlNotify "{}"
#comfunc global IMFCameraControlNotify_OnChange  3 var,int
#comfunc global IMFCameraControlNotify_OnError   4 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。