SetProcessDpiAwareness 関数 (shellscalingapi.h)
プロセスの既定の DPI 認識レベルを設定します。 これは、対応するDPI_AWARENESS_CONTEXT値を使用して SetProcessDpiAwarenessContext を呼び出すことと同じです。
注意
API 呼び出しではなく、アプリケーション マニフェストを使用してプロセスの既定の DPI 認識を設定することをお勧めします。 詳細については、「 プロセスの既定の DPI 認識の設定 」を参照してください。 API 呼び出しを使用してプロセスの既定の DPI 認識を設定すると、予期しないアプリケーション動作が発生する可能性があります。
構文
HRESULT SetProcessDpiAwareness(
[in] PROCESS_DPI_AWARENESS value
);
パラメーター
[in] value
設定する DPI 認識値。 使用できる値は、 PROCESS_DPI_AWARENESS 列挙体から取得できます。
戻り値
この関数は、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
|
アプリの DPI 認識が正常に設定されました。 |
|
渡された値が無効です。 |
|
DPI 認識は、この API を以前に呼び出すか、アプリケーション (.exe) マニフェストを使用して既に設定されています。 |
注釈
以前のバージョンの Windows では、アプリケーション全体に対して 1 つの DPI 認識値しかありませんでした。 これらのアプリケーションでは、「 PROCESS_DPI_AWARENESS」で説明されているように、マニフェストで DPI 認識値を設定することをお勧めします。 この推奨事項では、 SETProcessDpiAwareness を使用して DPI 認識を更新することは想定されていませんでした。 実際、DPI 認識が 1 回設定された後、この API の今後の呼び出しは失敗します。 DPI 認識がアプリケーションではなくスレッドに関連付けられているので、このメソッドを使用して DPI 認識を更新できます。 ただし、代わりに SetThreadDpiAwarenessContext を 使用することを検討してください。
古いアプリケーションの場合は、 SetProcessDpiAwareness を使用してアプリケーションの DPI 認識を設定しないことを強くお勧めします。 代わりに、アプリケーション マニフェストでアプリケーションの DPI 認識を宣言する必要があります。 DPI 認識の値とマニフェストで設定する方法の詳細については、「 PROCESS_DPI_AWARENESS 」を参照してください。
DPI 認識レベルが設定されていない場合、既定値は PROCESS_DPI_UNAWARE。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8.1 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shellscalingapi.h |
Library | Shcore.lib |
[DLL] | Shcore.dll |