EnumDisplaySettingsW 関数 (winuser.h)

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

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

構文

BOOL EnumDisplaySettingsW(
  [in]  LPCWSTR  lpszDeviceName,
  [in]  DWORD    iModeNum,
  [out] DEVMODEW *lpDevMode
);

パラメーター

[in] lpszDeviceName

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

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

[in] iModeNum

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

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

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

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

[out] lpDevMode

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

EnumDisplaySettings 関数は、次の 5 つの DEVMODE メンバーの値を設定します。

  • dmBitsPerPel
  • dmPelsWidth
  • dmPelsHeight
  • dmDisplayFlags
  • dmDisplayFrequency

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。

解説

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

DPI 仮想化

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

注意

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

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-sysparams-ext-l1-1-0 (Windows 8 で導入)

関連項目

ChangeDisplaySettings

ChangeDisplaySettingsEx

CreateDC

CreateDesktop

Devmode

DISPLAY_DEVICE

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

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

EnumDisplayDevices