Функция 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) |