Função SetProcessDpiAwareness (shellscalingapi.h)

Define o nível de reconhecimento de DPI padrão do processo. Isso é equivalente a chamar SetProcessDpiAwarenessContext com o valor de DPI_AWARENESS_CONTEXT correspondente.

Observação

É recomendável que você defina o reconhecimento de DPI padrão do processo por meio do manifesto do aplicativo, não uma chamada à API. Consulte Configurando o reconhecimento de DPI padrão para um processo para obter mais informações. Definir o reconhecimento de DPI padrão do processo por meio da chamada à API pode levar a um comportamento inesperado do aplicativo.

Sintaxe

HRESULT SetProcessDpiAwareness(
  [in] PROCESS_DPI_AWARENESS value
);

Parâmetros

[in] value

O valor de reconhecimento de DPI a ser definido. Os valores possíveis são da enumeração PROCESS_DPI_AWARENESS .

Retornar valor

Essa função retorna um dos valores a seguir.

Código de retorno Descrição
S_OK
O reconhecimento de DPI para o aplicativo foi definido com êxito.
E_INVALIDARG
O valor passado não é válido.
E_ACCESSDENIED
O reconhecimento de DPI já está definido, chamando essa API anteriormente ou por meio do manifesto do aplicativo (.exe).

Comentários

As versões anteriores do Windows tinham apenas um valor de reconhecimento de DPI para todo o aplicativo. Para esses aplicativos, a recomendação era definir o valor de reconhecimento de DPI no manifesto, conforme descrito em PROCESS_DPI_AWARENESS. Sob essa recomendação, você não deveria usar SetProcessDpiAwareness para atualizar o reconhecimento de DPI. Na verdade, chamadas futuras para essa API falhariam depois que o reconhecimento de DPI fosse definido uma vez. Agora que o reconhecimento de DPI está vinculado a um thread em vez de um aplicativo, você pode usar esse método para atualizar o reconhecimento de DPI. No entanto, considere usar SetThreadDpiAwarenessContext .

Importante  

Para aplicativos mais antigos, é altamente recomendável não usar SetProcessDpiAwareness para definir o reconhecimento de DPI para seu aplicativo. Em vez disso, você deve declarar o reconhecimento de DPI para seu aplicativo no manifesto do aplicativo. Consulte PROCESS_DPI_AWARENESS para obter mais informações sobre os valores de conscientização do DPI e como defini-los no manifesto.

 
Você deve chamar essa API antes de chamar as APIs que dependem do reconhecimento de dpi. Isso faz parte do motivo pelo qual é recomendável usar o manifesto do aplicativo em vez da API SetProcessDpiAwareness . Depois que o reconhecimento de API for definido para um aplicativo, todas as chamadas futuras para essa API falharão. Isso é verdadeiro, independentemente de você definir o reconhecimento de DPI no manifesto ou usando essa API.

Se o nível de reconhecimento de DPI não estiver definido, o valor padrão será PROCESS_DPI_UNAWARE.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8.1 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shellscalingapi.h
Biblioteca Shcore.lib
DLL Shcore.dll

Confira também

PROCESS_DPI_AWARENESS

SetThreadDpiAwarenessContext

Definir o reconhecimento de DPI padrão para um processo