WCS レジストリ キー
WCS では、レジストリ キーを使用して、特定のカラー プロファイル イベントが発生したことを通知します。 アプリでは、更新されたシステム カラー プロファイルの状態について、これらのレジストリ キーに対してクエリを実行する必要があります。
アクティブなカラー プロファイルの変更
アプリは、モニター デバイスのカラー プロファイル変更イベントに応答したい場合があります。これにより、ユーザーまたは別のアプリがデバイスのアクティブ プロファイルを変更した場合でも、ターゲットの正確な色情報が常に得られます。
デスクトップ アプリケーション
デスクトップ アプリでは、レジストリの変更をリッスンして、RegNotifyChangeKeyValueを使用して色プロファイルの関連付けが変更されたタイミング確認する必要があります。 アプリでは、ユーザーごとのプロファイル関連付けの変更とシステム全体の変更の両方を登録する必要があります。
RegNotifyChangeKeyValue は、RegOpenKeyExによって提供される HKEY で初期化する必要があります。 RegOpenKeyEx は、次のレジストリ ツリーの場所を使用して初期化する必要があります。
ユーザーごとのプロファイルの関連付け | HKEY_CURRENT_USER SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\ProfileAssociations\Display\{4d36e96e-e325-11ce-bfc1-08002be10318} |
システム全体のプロファイルの関連付け | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96e-e325-11ce-bfc1-08002be10318} |
レジストリ キーの変更がアプリに通知されたら、最初に WcsGetUsePerUserProfiles呼び出して、ユーザーごとまたはシステム全体の関連付けが使用されているかどうかを照会する必要があります。 次に、wcsGetDefaultColorProfileを右の WCS_PROFILE_MANAGEMENT_SCOPE 値で呼び出して、モニターの新しいアクティブなカラー プロファイルを取得する必要があります。 すべてのレジストリ キーの変更が、現在アクティブなカラー プロファイルの実際の変更に対応するわけではないことに注意してください。アプリは、WcsGetDefaultColorProfile によって返されたプロファイルが実際に変更されているかどうかを確認します。
ユニバーサル Windows (UWP) アプリ
ユニバーサル Windows アプリは、上記のレジストリ キーにアクセスできません。 代わりに、DisplayInformation.ColorProfileChanged イベントのハンドラーを登録する必要があります。 このイベントは、アプリケーションが実行されているモニターのアクティブなカラー プロファイルが変更されるたびに発生します。 ColorProfileChanged では、ユーザーごとのプロファイルの関連付けとシステム全体のプロファイルの関連付けが使用されているかどうかが考慮されます。この情報は、UWP アプリから抽象化されます。
ColorProfileChanged イベントに応答する場合、アプリは DisplayInformation.GetColorProfileAsync使用して、現在アクティブなプロファイルに対してクエリを実行する必要があります。