Поделиться через


Функция EnumDisplaySettingsA (winuser.h)

Функция EnumDisplaySettings извлекает сведения об одном из графических режимов для устройства отображения. Чтобы получить сведения для всех графических режимов устройства отображения, выполните ряд вызовов этой функции.

Примечание Приложения, предназначенные для Windows 8 и более поздних версий, больше не могут запрашивать или задавать режимы отображения менее 32 бит на пиксель (bpp); эти операции завершатся сбоем. Эти приложения имеют манифест совместимости, предназначенный для Windows 8. Windows 8 по-прежнему поддерживает 8- и 16-разрядные цветовые режимы для классических приложений, созданных без манифеста Windows 8; Windows 8 эмулирует эти режимы, но по-прежнему работает в 32-разрядном цветовом режиме.
 

Синтаксис

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

Параметры

[in] lpszDeviceName

Указатель на строку, завершающуюся значением NULL, которая указывает устройство отображения о том, в режиме графики которого функция будет получать сведения.

Этот параметр имеет значение NULL или DISPLAY_DEVICE. DeviceName возвращается из EnumDisplayDevices. Значение NULL указывает текущее устройство отображения на компьютере, на котором выполняется вызывающий поток.

[in] iModeNum

Тип извлекаемой информации. Это может быть индекс графического режима или одно из следующих значений.

Значение Значение
ENUM_CURRENT_SETTINGS
Получение текущих параметров для устройства отображения.
ENUM_REGISTRY_SETTINGS
Получите параметры для устройства отображения, которые в настоящее время хранятся в реестре.
 

Индексы графического режима начинаются с нуля. Чтобы получить сведения для всех графических режимов устройства отображения, выполните ряд вызовов EnumDisplaySettings следующим образом: установите iModeNum равным нулю для первого вызова и приумножайте iModeNum на единицу для каждого последующего вызова. Продолжайте вызывать функцию, пока возвращаемое значение не равно нулю.

При вызове EnumDisplaySettings с iModeNum, для параметра iModeNum задано значение 0, операционная система инициализирует и кэширует сведения об устройстве отображения. При вызове EnumDisplaySettings с параметром iModeNum, для параметра iModeNum задано ненулевое значение, функция возвращает сведения, которые кэшировались при последнем вызове функции с параметром iModeNum , равным нулю.

[out] lpDevMode

Указатель на структуру DEVMODE , в которую функция хранит сведения о указанном графическом режиме. Перед вызовом EnumDisplaySettings задайте для члена sizeof(DEVMODE)dmSize значение , а для члена dmDriverExtra укажите размер (в байтах) дополнительного пространства, доступного для получения данных о частных драйверах.

Функция EnumDisplaySettings задает значения для следующих пяти членов DEVMODE :

  • dmBitsPerPel
  • dmPelsWidth
  • dmPelsHeight
  • dmDisplayFlags
  • dmDisplayFrequency

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение.

Комментарии

Функция завершается ошибкой, если iModeNum больше индекса последнего графического режима устройства отображения. Как указано в описании параметра iModeNum , это поведение можно использовать для перечисления всех графических режимов устройства отображения.

Виртуализация DPI

Этот API не участвует в виртуализации DPI. Выходные данные всегда относятся к физическим пикселям и не связаны с вызывающим контекстом.

Примечание

Заголовок winuser.h определяет EnumDisplaySettings в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека 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