Функция EnumDisplayDevices дает возможность, получить информацию об устройствах отображения в системе.
Синтаксис
BOOL EnumDisplayDevices( LPCTSTR lpDevice, // название устройства DWORD iDevNum, // устройство отображения PDISPLAY_DEVICE lpDisplayDevice, // информация об устройстве DWORD dwFlags // зарезервирован ); |
lpDevice
[in] Указатель на имя устройства. Если это значение ПУСТО (NULL), функция возвращает информацию для адаптера(ов) дисплея на машине, базируясь на параметре iDevNum. Подробную информацию см. в разделе Замечания.iDevNum
[in] Индексное значение, которое определяет устройство отображения, представляющее интерес.Операционная система идентифицирует каждое устройство отображения индексным значением. Индексные значения - следующие друг за другом целые числа, начинающиеся с 0. Если система имеет три устройства отображения, например, они определяются индексными значениями 0, 1, и 2.
lpDisplayDevice [out] Указатель на структуру DISPLAY_DEVICE, которая принимает информацию об устройстве отображения, заданном параметром iDevNum.Перед вызовом функции EnumDisplayDevices, Вы должны инициализировать член cb структуры DISPLAY_DEVICE, как размер этой структуры, в байтах.
dwFlags Этот параметр в настоящее время не используется и должен быть установлен в нуль.
Если функция завершается успешно, величина возвращаемого значения - не ноль.
Если функция завершается ошибкой, величина возвращаемого значения - ноль. Функция завершается ошибкой тогда, если параметр 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.
Обратите внимание! на то, что член структуры DISPLAY_DEVICE.DeviceName изменяет с каждым вызовом информацию о мониторе, так что Вы должны сохранять название адаптера. Функция завершается ошибкой тогда, когда для адаптера больше нет мониторов. |
Windows 98/Me: EnumDisplayDevicesW поддерживается программой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.
Смотри также
Обзор Контексты устройства, Функции, используемые контекстами устройства, ChangeDisplaySettings, ChangeDisplaySettingsEx, CreateDC, DEVMODE, DISPLAY_DEVICE, EnumDisplaySettings
Размещение и совместимость EnumDisplayDevices |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Нет |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Нет |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Реализуется как версии Unicode и ANSI для Windows 2000/XP. А также поддерживается программой Microsoft Layer for Unicode. |
Замечания по платформе |
Не имеется |