### 函数功能

该函数得到显示设备的一个图形模式设备，通过对该函数一系列的调用可以得到显示设备所有的图形模式信息。

### 函数原型

BOOL EnumDisplaySettings(LPCTSTR lpszDeviceName, DWORD iModeNum, LPDEVMODE lpDevMode)；

### 参数

lpszDeviceName：指向一个以null的结尾的字符串，该字符串指定了显示设备。此函数将获得该显示设备的图形模式信息。该参数可以为NULL。NULL值表明调用线程正运行在计算机的当前显示设备上。如果lpszDeviceName为NULL，该字符串的形式为\\.\displayx，其中x的值可以为1、2或3。对于Windows 95和Windows 98，lpszDeviceName必须为NULL。
iModeNum：表明要检索的信息类型，该值可以是一个图形模式索引，也可以是下列一值：
ENUM_CURRENT_SETTINGS：检索显示设备的当前设置。
ENUM_REGISTRY_SETTINGS：检索当前存储在注册表中的显示设备的设置。
图形模式索引值从零开始，要得到一个显示设备的所有图形模式信息，可以一系列地调用EnumDisplaySettings函数，并且iModeNum显为一个非零值时，则函数返回的信息是最近一次使用iModeNum置为零调用该函数时存储的信息。
lpDevMode：DEVMODE结构的指针，该结构存储指定图形模式的信息，在调用EnumDisplaySettings之前，设置dmSize为sizeof(DEVMODE)，并且以字节为单位，设置dmDriveExtra元素为接收专用驱动数据可用的附加空间。
EnumDisplaySettings函数设置如下五个DEVMODE元素的值：dmBitsPerpel、dmPelsWidth、dmPelsHeight、dmDisplayFlags、dmDisplayFrequency。

### 返回值

如果成功，返回非零值；如果失败，返回零。
Windows NT：若想获得更多错误信息，请调用GetLastError函数。
注释：如果iModeNum大于显示设备最后的图形模式索引，那么函数就会失败，如同在iModeNum参数中描述的那样，使用这种方法可以枚举显示设备所有的图形模式。

### 速查

Windows NT：3.51及以上版本；Windows：95及以上版本；Windows CE：不支持；头文件：winuser.h；库文件：user32.lib；Unicode：在Windows NT上实现为Unicode和ANSI两种版本。