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

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

Синтаксис

BOOL EnumDisplayDevicesW(
  [in]  LPCWSTR          lpDevice,
  [in]  DWORD            iDevNum,
  [out] PDISPLAY_DEVICEW 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 , равным 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 — на 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

Создание центра обработки данных

DEVMODE

DISPLAY_DEVICE

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

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

EnumDisplaySettings