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


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

Функция EnumDisplayDevices позволяет получать сведения об устройствах отображения в текущем сеансе.

Синтаксис

BOOL EnumDisplayDevicesA(
  [in]  LPCSTR           lpDevice,
  [in]  DWORD            iDevNum,
  [out] PDISPLAY_DEVICEA lpDisplayDevice,
  [in]  DWORD            dwFlags
);

Параметры

[in] lpDevice

Указатель на имя устройства. Если значение РАВНО NULL, функция возвращает сведения для адаптеров отображения на компьютере на основе iDevNum.

Дополнительные сведения см. в подразделе "Примечания".

[in] iDevNum

Значение индекса, указывающее интересующее устройство отображения.

Операционная система определяет каждое отображающее устройство в текущем сеансе с помощью значения индекса. Значения индекса являются последовательными целыми числами, начиная с 0. Например, если в текущем сеансе есть три устройства отображения, они задаются значениями индекса 0, 1 и 2.

[out] lpDisplayDevice

Указатель на структуру DISPLAY_DEVICE , получающую сведения об устройстве отображения, указанном iDevNum.

Перед вызовом EnumDisplayDevices необходимо инициализировать член cbDISPLAY_DEVICE размером в байтах DISPLAY_DEVICE.

[in] dwFlags

Установите для этого флага значение EDD_GET_DEVICE_INTERFACE_NAME (0x00000001), чтобы получить имя интерфейса устройства для GUID_DEVINTERFACE_MONITOR, которое регистрируется операционной системой для каждого монитора. Значение помещается в элемент DeviceID структуры DISPLAY_DEVICE , возвращаемой в lpDisplayDevice. Полученное имя интерфейса устройства можно использовать с функциями SetupAPI и служит связующим звеном между устройствами монитора GDI и устройствами монитора SetupAPI.

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

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

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

Комментарии

Чтобы запросить все устройства отображения в текущем сеансе, вызовите эту функцию в цикле, начиная с iDevNum, для параметра iDevNum задано значение 0, и приращение iDevNum до тех пор, пока функция не завершится сбоем. Чтобы выбрать все устройства отображения на рабочем столе, используйте только устройства отображения с флагом DISPLAY_DEVICE_ATTACHED_TO_DESKTOP в структуре DISPLAY_DEVICE .

Чтобы получить сведения об адаптере дисплея, вызовите EnumDisplayDevices с параметром lpDevice , имеющим значение NULL. Например, DISPLAY_DEVICE. DeviceString содержит имя адаптера.

Чтобы получить сведения о мониторе дисплея, сначала вызовите EnumDisplayDevices с параметром lpDevice , имеющим значение NULL. Затем вызовите EnumDisplayDevices с параметром lpDevice для DISPLAY_DEVICE. DeviceName из первого вызова EnumDisplayDevices и с параметром iDevNum , равным нулю. Затем DISPLAY_DEVICE. DeviceString — это имя монитора.

Чтобы запросить все устройства монитора, связанные с адаптером, вызовите EnumDisplayDevices в цикле с параметром lpDevice , для параметра iDevNum задано значение start с 0, а iDevNum — для увеличения, пока функция не завершится ошибкой. Обратите внимание, что DISPLAY_DEVICE. DeviceName изменяется при каждом вызове сведений о мониторе, поэтому необходимо сохранить имя адаптера. Функция завершается сбоем, если для адаптера больше нет мониторов.

Примечание

Заголовок winuser.h определяет EnumDisplayDevices в качестве псевдонима, который автоматически выбирает версию 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-1 (представлено в Windows 10, версия 10.0.14393)

См. также раздел

ChangeDisplaySettings

ChangeDisplaySettingsEx

CreateDC

DEVMODE

DISPLAY_DEVICE

Функции контекста устройства

Общие сведения о контекстах устройств

EnumDisplaySettings