<Return[E]><Top>

EnumDisplaySettings

Declare Function Api_EnumDisplaySettings& Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName$, ByVal dwModeNum&,lpDevMode As DEVMODE)

Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean

ディスプレイデバイスのいずれかのグラフィックスモードに関する情報を取得する。連続して呼び出すと、ディスプレイデバイスのすべてのグラフィックスモードに関する情報を取得することができる。

パラメータ
lpszDeviceName
    グラフィックスモード情報を取得するディスプレイデバイスを示す、NULL で終わる文字列へのポインタを指定する。
    このパラメータには、NULL または DISPLAY_DEVICE を指定することができる。

    DeviceName は EnumDisplayDevices 関数から取得でる。

    NULL 値を指定すると、呼び出し側スレッドが実行されているコンピュータの現在のディスプレイデバイスを取得できる。
    Windows 95:lpszDeviceName パラメータには、NULL を指定する。
iModeNum
    取得する情報の種類を指定する。グラフィックスモードのインデックス、または次のいずれかの値を使う。

    値                                               

意味                                                                                                                     

    ENUM_CURRENT_SETTINGS

指定した表示デバイスの現在の設定を取得する。

    ENUM_REGISTRY_SETTINGS

指定した表示デバイスのレジストリに格納されている設定を取得する。

    グラフィックスモードのインデックスは、0 から始まる。表示デバイスのすべてのグラフィックスモードに関する情報を取得するには、

    EnumDisplaySettings 関数を続けて呼び出す。まず、iModeNum パラメータを 0 に設定して最初の呼び出しをする。

    その後、戻り値が 0 になるまで、iModeNum パラメータに 1 ずつ加算して繰り返し呼び出す。
    iModeNum パラメータを 0 に設定して EnumDisplaySettings 関数を呼び出すと、オペレーティングシステムが表示デバイスの情報を

    初期化し、キャッシュに入れる。iModeNum パラメータを 0 以外の値に設定して EnumDisplaySettings 関数を呼び出すと、最後に

    iModeNum パラメータを 0 に設定して呼び出したときにキャッシュされた内容が得られる。
lpDevMode
    指定したグラフィックスモードに関する情報を格納する DEVMODE 構造体へのポインタを指定する。

    EnumDisplaySettings 関数を呼び出す前に、dmSize メンバを sizeof(DEVMODE) に設定し、dmDriverExtra メンバを、

    専用のドライバデータを受け取る追加領域のサイズ(バイト数)に設定しておく。
    EnumDisplaySettings 関数は、次の 5 つの DEVMODE メンバに値を設定する。
        dmBitsPerPel
        dmPelsWidth
        dmPelsHeight
        dmDisplayFlags
        dmDisplayFrequency

戻り値
    関数が成功すると 0 以外の値が返る。
    関数が失敗すると 0 が返る。
    Windows NT/2000/XP:拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    IModeNum パラメータの値が、ディスプレイデバイスに前回指定されたグラフィックスモードのインデックスより大きい場合、関数は失敗する。 

    この動作を利用してディスプレイデバイスのすべてのグラフィックスモードを列挙することができる。