IMFCameraControlNotify
COM公式ドキュメント
カメラコントロールの変更に対する通知コールバックを表します。
解説(Remarks)
クライアントは、別のアプリがキャプチャデバイスのカメラ設定を変更したときに通知を受け取るために、このインターフェイスを実装します。実装を MFCreateCameraControlMonitor 関数に渡して、IMFCameraControlMonitor のインスタンスを作成します。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
カメラコントロールの値が変更されたときに発生します。
| controlSet | GUID* | in | 変更されたコントロールが属するカメラコントロールセットを指定する GUID。 |
| id | DWORD | in | コントロールセット内で変更されたコントロールの 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 を参照してください。
関連付けられた IMFCameraControlMonitor 内で回復不能なエラーが発生したときに発生します。
| hrStatus | HRESULT | in | エラーに関連付けられた内部エラーコード。想定されるエラー値には次のものが含まれます。
|
解説(Remarks)
この関数の呼び出しが返された後、システムはクリーンアップを行い、IMFCameraControlNotify への参照を削除します。クライアントは、OnError 通知を受け取った後に IMFCameraControlMonitor::Shutdown を呼び出す必要はありません。
このメソッドを実装するコード例については、IMFCameraControlNotify を参照してください。
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 方式にも切替可。#define global IID_IMFCameraControlNotify "{E8F2540D-558A-4449-8B64-4863467A9FE8}" #usecom global IMFCameraControlNotify IID_IMFCameraControlNotify "{}" #comfunc global IMFCameraControlNotify_OnChange 3 sptr,int #comfunc global IMFCameraControlNotify_OnError 4 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。