IAppVisibility
COM公式ドキュメント
ディスプレイがユニバーサル Windows プラットフォーム アプリを表示しているかどうかを判定する機能を提供します。
解説(Remarks)
ディスプレイがユニバーサル Windows プラットフォーム アプリを表示しているタイミングを判定するには、IAppVisibility インターフェイスを使用します。これはアクセシビリティ ツールやその他のアプリケーションで役立ちます。
スタート画面が表示されているタイミングを判定するには、IsLauncherVisible メソッドを使用します。
IAppVisibility インターフェイスを実装しないでください。代わりに、CLSID_AppVisibility を指定して CoCreateInstance 関数を呼び出してください。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定したモニターの現在のモードを照会します。
| hMonitor | HMONITOR | in | 照会するモニター。 |
| pMode | MONITOR_APP_VISIBILITY* | out | hMonitor の現在のモード。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| pMode が NULL です。 |
スタート画面が表示されているかどうかを示す値を取得します。
| pfVisible | BOOL* | out | スタート画面が表示されている場合は TRUE、それ以外の場合は FALSE。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| pfVisible が NULL です。 |
ディスプレイの変更通知を受け取るためのアドバイス シンク オブジェクトを登録します。
| pCallback | IAppVisibilityEvents* | in | 接続ポイントからの送信呼び出しを受け取るクライアントのアドバイス シンク。 |
| pdwCookie | DWORD* | out | この接続を一意に識別するトークン。このトークンを Unadvise メソッドに渡すことで、接続を削除できます。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| pdwCookie が NULL です。 |
Advise によって以前に確立された接続を取り消します。
| dwCookie | DWORD | in | 取り消す接続を一意に識別するトークン。これは以前の Advise メソッドの呼び出しによって提供されます。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAppVisibility "{2246EA2D-CAEA-4444-A3C4-6DE827E44313}" #usecom global IAppVisibility IID_IAppVisibility "{7E5FE3D9-985F-4908-91F9-EE19F9FD1514}" #comfunc global IAppVisibility_GetAppVisibilityOnMonitor 3 sptr,var #comfunc global IAppVisibility_IsLauncherVisible 4 var #comfunc global IAppVisibility_Advise 5 sptr,var #comfunc global IAppVisibility_Unadvise 6 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IAppVisibility "{2246EA2D-CAEA-4444-A3C4-6DE827E44313}" #usecom global IAppVisibility IID_IAppVisibility "{7E5FE3D9-985F-4908-91F9-EE19F9FD1514}" #comfunc global IAppVisibility_GetAppVisibilityOnMonitor 3 sptr,sptr #comfunc global IAppVisibility_IsLauncherVisible 4 sptr #comfunc global IAppVisibility_Advise 5 sptr,sptr #comfunc global IAppVisibility_Unadvise 6 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。