次の方法で共有


EnumDisplaySettingsExA 関数 (winuser.h)

EnumDisplaySettingsEx 関数は、ディスプレイ デバイスのグラフィックス モードの 1 つに関する情報を取得します。 ディスプレイ デバイスのすべてのグラフィックス モードの情報を取得するには、この関数を一連の呼び出しを行います。

この関数は、dwFlags パラメーターがある点で、EnumDisplaySettings とは異なります。

注意 Windows 8 以降を対象とするように設計したアプリでは、1 ピクセルあたり 32 ビット未満 (bpp) の表示モードのクエリや設定ができなくなります。これらの操作は失敗します。 これらのアプリには、Windows 8 を対象とする 互換性マニフェスト があります。 Windows 8 では、Windows 8 マニフェストなしでビルドされたデスクトップ アプリの 8 ビットと 16 ビットのカラー モードが引き続きサポートされます。Windows 8 はこれらのモードをエミュレートしますが、32 ビット カラー モードで実行されます。
 

構文

BOOL EnumDisplaySettingsExA(
  [in]  LPCSTR   lpszDeviceName,
  [in]  DWORD    iModeNum,
  [out] DEVMODEA *lpDevMode,
  [in]  DWORD    dwFlags
);

パラメーター

[in] lpszDeviceName

関数が情報を取得するグラフィックス モードに関する表示デバイスを指定する null で終わる文字列へのポインター。

このパラメーターは、NULL または DISPLAY_DEVICEです。EnumDisplayDevicesから返される DeviceNameします。 NULL 値は、呼び出し元のスレッドが実行されているコンピューター上の現在の表示デバイスを指定します。

[in] iModeNum

取得する情報の種類を示します。 この値には、グラフィックス モードのインデックスまたは次のいずれかの値を指定できます。

価値 意味
ENUM_CURRENT_SETTINGS
ディスプレイ デバイスの現在の設定を取得します。
ENUM_REGISTRY_SETTINGS
レジストリに現在格納されているディスプレイ デバイスの設定を取得します。
 

グラフィックス モードのインデックスは 0 から始まります。 ディスプレイ デバイスのすべてのグラフィックス モードの情報を取得するには、次のように、EnumDisplaySettingsExの一連の呼び出しを行います。最初の呼び出しで iModeNum を 0 に設定し、後続の呼び出しごとに iModeNum 1 ずつインクリメントします。 戻り値が 0 になるまで関数の呼び出しを続けます。

iModeNum を 0 に設定して EnumDisplaySettingsEx 呼び出すと、オペレーティング システムはディスプレイ デバイスに関する情報を初期化してキャッシュします。 iModeNum 0 以外の値に設定 EnumDisplaySettingsEx を呼び出すと、iModeNum をゼロに設定して関数が最後に呼び出されたときにキャッシュされた情報が返されます。

[out] lpDevMode

指定したグラフィックス モードに関する情報を関数が格納する DEVMODE 構造体へのポインター。 EnumDisplaySettingsEx呼び出す前に、dmSize メンバーを sizeof (DEVMODE) に設定し、dmDriverExtra メンバー を、プライベート ドライバー データを受信するために使用できる追加領域のサイズ (バイト単位) を示すように設定します。

EnumDisplaySettingsEx 関数は、lpDevMode のメンバーと、DEVMODE 構造体の 1 つ以上の他のメンバーの dmFields メンバーを設定します。 EnumDisplaySettingsEx呼び出しによって設定されたメンバーを確認するには、dmFields ビットマスクを調べます。 通常、この関数によって設定されるフィールドには、次のようなものがあります。

  • dmBitsPerPel を する
  • dmPelsWidth を する
  • dmPelsHeight
  • dmDisplayFlags を する
  • dmDisplayFrequency を する
  • dmPosition を する
  • dmDisplayOrientation の

[in] dwFlags

このパラメーターには、次の値を指定できます。

価値 意味
EDS_RAWMODE
設定すると、モニター機能に関係なく、アダプター ドライバーによって報告されたすべてのグラフィックス モードが返されます。 それ以外の場合は、現在のモニターと互換性のあるモードのみが返されます。
EDS_ROTATEDMODE
設定すると、関数はすべての方向のグラフィックス モードを返します。 それ以外の場合は、要求されたディスプレイに現在設定されているモードと同じ向きを持つモードのみが返されます。

戻り値

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値は 0 です。

備考

iModeNum ディスプレイ デバイスの最後のグラフィックス モードのインデックスより大きい場合、関数は失敗します。 iModeNum パラメーターの説明に記載されているように、この動作を使用して、ディスプレイ デバイスのすべてのグラフィックス モードを列挙できます。

DPI 仮想化

この API は DPI 仮想化には参加しません。 指定された出力は常に物理ピクセルの観点からであり、呼び出し元のコンテキストには関連しません。

手記

winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして EnumDisplaySettingsEx を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winuser.h (Windows.h を含む)
ライブラリ User32.lib
DLL User32.dll
API セットの ext-ms-win-ntuser-sysparams-ext-l1-1-1 (Windows 10 バージョン 10.0.14393 で導入)

関連項目

ChangeDisplaySettings

ChangeDisplaySettingsEx

CreateDC の

CreateDesktop の

DEVMODE の

DISPLAY_DEVICE

デバイス コンテキスト関数の

デバイス コンテキストの概要

EnumDisplayDevices の

EnumDisplaySettings の