IImmersiveMonitor
Immersive Shellにおけるディスプレイ(画面、モニター)を扱います。
確認済み OS
Windows 8.1, Windows 10 (Build 10240, 10586)
構文
※ Windows 8.1 と Windows 10 でIIDおよびメソッドが異なります(Windows 10ではメソッドが追加されています)。
[C/C++] - Windows 8.1
// struct IImmersiveMonitor : public IUnknown DECLARE_INTERFACE_IID_(IImmersiveMonitor, IUnknown, "2EC3CE80-679E-4CF6-A8E8-9DC9A886E353") { /*** IUnknown methods ***/ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /*** IImmersiveMonitor methods ***/ STDMETHOD(GetIdentity)(THIS_ ULONG*) PURE; STDMETHOD(ConnectObject)(THIS_ IUnknown*) PURE; STDMETHOD(GetHandle)(THIS_ HMONITOR*) PURE; STDMETHOD(IsConnected)(THIS_ BOOL*) PURE; STDMETHOD(IsPrimary)(THIS_ BOOL*) PURE; STDMETHOD(IsImmersiveDisplayDevice)(THIS_ BOOL*) PURE; STDMETHOD(GetDisplayRect)(THIS_ RECT*) PURE; STDMETHOD(GetOrientation)(THIS_ ULONG*) PURE; STDMETHOD(GetWorkArea)(THIS_ RECT*) PURE; STDMETHOD(IsEqual)(THIS_ IImmersiveMonitor*, BOOL*) PURE; STDMETHOD(IsImmersiveCapable)(THIS_ BOOL*) PURE; };
[C/C++] - Windows 10
// struct IImmersiveMonitor : public IUnknown DECLARE_INTERFACE_IID_(IImmersiveMonitor, IUnknown, "880B26F8-9197-43D0-8045-8702D0D72000") { /*** IUnknown methods ***/ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /*** IImmersiveMonitor methods ***/ STDMETHOD(GetIdentity)(THIS_ ULONG*) PURE; STDMETHOD(ConnectObject)(THIS_ IUnknown*) PURE; STDMETHOD(GetHandle)(THIS_ HMONITOR*) PURE; STDMETHOD(IsConnected)(THIS_ BOOL*) PURE; STDMETHOD(IsPrimary)(THIS_ BOOL*) PURE; STDMETHOD(IsImmersiveDisplayDevice)(THIS_ BOOL*) PURE; STDMETHOD(GetDisplayRect)(THIS_ RECT*) PURE; STDMETHOD(GetOrientation)(THIS_ ULONG*) PURE; STDMETHOD(GetWorkArea)(THIS_ RECT*) PURE; STDMETHOD(IsEqual)(THIS_ IImmersiveMonitor*, BOOL*) PURE; STDMETHOD(IsImmersiveCapable)(THIS_ BOOL*) PURE; STDMETHOD(GetEffectiveDpi)(THIS_ UINT*, UINT*) PURE; };
※ すべてのメソッドの挙動は確認していません。
関連する型
(特になし)
使用上の注意点
- Windows 8.1とWindows 10(Build 10240)でIIDが異なるため、IUnknown::QueryInterface を利用する場合は適切なIIDを用いる必要があります。ただし IImmersiveMonitor のインスタンスは多くのメソッドで直接利用するため、IIDを利用する機会は少ないと考えられます。
- IImmersiveMonitor::GetEffectiveDpi はWindows 8.1には存在しません。
- IImmersiveMonitor::GetEffectiveDpi など、一部メソッドはディスプレイが接続されていない状態では利用できません(エラー値が返ります)。
- IImmersiveMonitor::GetIdentity の値は IImmersiveMonitorManager::GetFromIdentity などで利用できます。
解説
Windows 8で導入された「Immersive Shell」において、IImmersiveMonitor はコンピューターで利用できる個々のディスプレイを表します。IImmersiveApplication や IApplicationView のメソッドの引数などでも使用されます。
このインターフェイスの主な取得元
- IImmersiveMonitorManager - すべての利用可能な IImmersiveMonitor を管理しています。
- IImmersiveMonitorNotification - ディスプレイの変更を検出するためのコールバック用インターフェイスです。
- IImmersiveApplication - アプリケーションのメインウィンドウ(メインビュー)が存在するディスプレイを取得できます(設定も可能です)。
- IApplicationView - ビューが存在するディスプレイを取得できます。
最終更新日: 2015/12/30