Share via


Fonction SetProcessDpiAwareness (shellscalingapi.h)

Définit le niveau de sensibilisation ppp par défaut du processus. Cela revient à appeler SetProcessDpiAwarenessContext avec la valeur DPI_AWARENESS_CONTEXT correspondante.

Notes

Il est recommandé de définir la reconnaissance ppp par défaut du processus via le manifeste d’application, et non un appel d’API. Pour plus d’informations, consultez Définition de la reconnaissance PPP par défaut pour un processus . La définition de la reconnaissance ppp par défaut du processus via un appel d’API peut entraîner un comportement inattendu de l’application.

Syntaxe

HRESULT SetProcessDpiAwareness(
  [in] PROCESS_DPI_AWARENESS value
);

Paramètres

[in] value

Valeur de reconnaissance PPP à définir. Les valeurs possibles proviennent de l’énumération PROCESS_DPI_AWARENESS .

Valeur retournée

Cette fonction retourne l’une des valeurs suivantes.

Code de retour Description
S_OK
La reconnaissance PPP de l’application a été correctement définie.
E_INVALIDARG
La valeur passée n’est pas valide.
E_ACCESSDENIED
La reconnaissance PPP est déjà définie, soit en appelant cette API précédemment, soit via le manifeste de l’application (.exe).

Remarques

Les versions précédentes de Windows n’avaient qu’une seule valeur de sensibilisation PPP pour l’ensemble de l’application. Pour ces applications, il était recommandé de définir la valeur de reconnaissance PPP dans le manifeste, comme décrit dans PROCESS_DPI_AWARENESS. En vertu de cette recommandation, vous n’êtes pas censé utiliser SetProcessDpiAwareness pour mettre à jour la prise de conscience ppp. En fait, les appels futurs à cette API échoueraient une fois que la prise de conscience PPP a été définie une seule fois. Maintenant que la reconnaissance PPP est liée à un thread plutôt qu’à une application, vous pouvez utiliser cette méthode pour mettre à jour la reconnaissance PPP. Toutefois, envisagez d’utiliser SetThreadDpiAwarenessContext à la place.

Important  

Pour les applications plus anciennes, il est fortement recommandé de ne pas utiliser SetProcessDpiAwareness pour définir la reconnaissance ppp pour votre application. Au lieu de cela, vous devez déclarer la reconnaissance PPP pour votre application dans le manifeste de l’application. Consultez PROCESS_DPI_AWARENESS pour plus d’informations sur les valeurs de reconnaissance PPP et sur la façon de les définir dans le manifeste.

 
Vous devez appeler cette API avant d’appeler toutes les API qui dépendent de la reconnaissance ppp. C’est en partie la raison pour laquelle il est recommandé d’utiliser le manifeste de l’application plutôt que l’API SetProcessDpiAwareness . Une fois que la reconnaissance de l’API est définie pour une application, tous les appels futurs à cette API échouent. Cela est vrai que vous définissiez la reconnaissance PPP dans le manifeste ou à l’aide de cette API.

Si le niveau de sensibilisation PPP n’est pas défini, la valeur par défaut est PROCESS_DPI_UNAWARE.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shellscalingapi.h
Bibliothèque Shcore.lib
DLL Shcore.dll

Voir aussi

PROCESS_DPI_AWARENESS

SetThreadDpiAwarenessContext

Définition de la reconnaissance PPP par défaut pour un processus