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

IMFCameraOcclusionStateMonitor

COM
IIDcc692f46-c697-47e2-a72d-7b064617749b継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

カメラデバイスのオクルージョン(遮蔽)状態を監視します。

解説(Remarks)

多くのデバイスには、プライバシー保護のためにユーザーがカメラデバイスを遮蔽できる仕組み(機械式シャッターなど)が備わっています。また、特定の姿勢でカメラが遮蔽されるデバイスもあります。このインターフェイスを使用すると、アプリケーションはカメラのオクルージョン状態が変化したときに通知を受け取ることができ、カメラが遮蔽されている場合にカメラキャプチャの動作を無効化または変更できます。なお、一部のデバイスには機械式のカメラシャッターがあってもシャッター状態を検知または報告する仕組みがない場合があり、そのようなデバイスではカメラオクルージョン API がオクルージョン情報を提供できません。また、専用のカメラシャッターを持たないデバイスであっても、デバイスのふたが開いているか閉じているかに基づいてカメラのオクルージョン状態を更新するものもあります。

このインターフェイスのインスタンスは、MFCreateCameraOcclusionStateMonitor を呼び出し、IMFCameraOcclusionStateReportCallback の実装を渡すことで作成します。モニターの開始後、IMFCameraOcclusionStateReportCallback::OnOcclusionStateReport コールバックに IMFCameraOcclusionStateReport のインスタンスが渡されます。このインスタンスで GetOcclusionState を呼び出すと、新しいカメラオクルージョン状態を取得できます。

メソッド 3

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

vtbl 3 HRESULT Start()

カメラオクルージョン状態モニターを開始します。

戻り値

次の値を含む(ただしこれらに限定されない)HRESULT 値を返します。

Error code Description
S_OK 成功しました
vtbl 4 HRESULT Stop()

カメラオクルージョン状態モニターを停止します。

戻り値

次の値を含む(ただしこれらに限定されない)HRESULT 値を返します。

Error code Description
S_OK 成功しました
vtbl 5 DWORD GetSupportedStates()

現在のデバイスがサポートするオクルージョン状態を取得します。

戻り値

MFCameraOcclusionState 列挙体の値をビット単位の OR で組み合わせた DWORD を返します。

解説(Remarks)

現在のオクルージョン状態を取得するには、IMFCameraOcclusionStateReportCallback::OnOcclusionStateReport コールバックに渡された IMFCameraOcclusionStateReportIMFCameraOcclusionStateReport::GetOcclusionState メソッドを呼び出します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IMFCameraOcclusionStateMonitor "{CC692F46-C697-47E2-A72D-7B064617749B}"
#usecom global IMFCameraOcclusionStateMonitor IID_IMFCameraOcclusionStateMonitor "{}"
#comfunc global IMFCameraOcclusionStateMonitor_Start               3
#comfunc global IMFCameraOcclusionStateMonitor_Stop                4
#comfunc global IMFCameraOcclusionStateMonitor_GetSupportedStates  5
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。