Chaves do Registro do WCS
O WCS usa chaves do Registro para sinalizar que determinados eventos de perfil de cor ocorreram. Os aplicativos devem consultar essas chaves do Registro para obter o estado atualizado do perfil de cor do sistema.
Perfil de cor ativo alterado
Os aplicativos podem querer responder a eventos de alteração de perfil de cor para um dispositivo monitor; isso garante que eles sempre tenham informações de cor precisas para seu destino, mesmo que o usuário ou outro aplicativo tenha alterado o perfil ativo do dispositivo.
Aplicativos da área de trabalho
Os aplicativos da área de trabalho devem escutar alterações no Registro para determinar quando as associações de perfil de cor foram alteradas usando RegNotifyChangeKeyValue. Um aplicativo deve registrar-se para alterações de associação de perfil por usuário e para alterações em todo o sistema.
RegNotifyChangeKeyValue deve ser inicializado com um HKEY fornecido por RegOpenKeyEx. RegOpenKeyEx deve ser inicializado usando os seguintes locais de árvore do Registro:
Associações de perfil por usuário | HKEY_CURRENT_USER SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\ProfileAssociations\Display\{4d36e96e-e325-11ce-bfc1-08002be10318} |
Associações de perfil em todo o sistema | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96e-e325-11ce-bfc1-08002be10318} |
Quando o aplicativo é notificado sobre uma alteração de chave do Registro, ele deve primeiro consultar se associações por usuário ou em todo o sistema estão sendo usadas chamando WcsGetUsePerUserProfiles. Em seguida, ele deve chamar WcsGetDefaultColorProfile com o valor de WCS_PROFILE_MANAGEMENT_SCOPE certo para obter o novo perfil de cor ativo para o monitor. Observe que nem todas as alterações de chave do Registro corresponderão a uma alteração real no perfil de cor ativo no momento; o aplicativo mush marcar se o perfil retornado por WcsGetDefaultColorProfile realmente foi alterado.
Aplicativos UWP (Universal do Windows)
Os Aplicativos Universais do Windows não têm acesso às chaves do Registro acima. Em vez disso, eles devem registrar um manipulador para o evento DisplayInformation.ColorProfileChanged . Esse evento é acionado sempre que o perfil de cor ativo do monitor no qual o aplicativo está sendo executado foi alterado. ColorProfileChanged leva em conta se associações de perfil por usuário ou em todo o sistema estão sendo usadas; essas informações são abstraidas de aplicativos UWP.
Ao responder ao evento ColorProfileChanged, o aplicativo deve consultar o perfil ativo no momento usando DisplayInformation.GetColorProfileAsync.