EnumDisplaySettingsExA 函式 (winuser.h)
EnumDisplaySettingsEx 函式會擷取顯示裝置其中一種圖形模式的相關信息。 若要擷取顯示裝置所有圖形模式的資訊,請對此函式進行一系列呼叫。
此函式與 EnumDisplaySettings 不同,因為有 dwFlags 參數。
語法
BOOL EnumDisplaySettingsExA(
[in] LPCSTR lpszDeviceName,
[in] DWORD iModeNum,
[out] DEVMODEA *lpDevMode,
[in] DWORD dwFlags
);
參數
[in] lpszDeviceName
Null 終止字串的指標,指定函式將取得資訊之圖形模式的顯示裝置。
此參數為 NULL 或DISPLAY_DEVICE。從 EnumDisplayDevices 傳回的 DeviceName。 NULL 值會指定呼叫線程執行所在的電腦上目前的顯示裝置。
[in] iModeNum
指出要擷取的信息類型。 此值可以是圖形模式索引或下列其中一個值。
值 | 意義 |
---|---|
|
擷取顯示裝置的目前設定。 |
|
擷取目前儲存在登錄中的顯示裝置設定。 |
圖形模式索引從零開始。 若要取得所有顯示裝置圖形模式的資訊,請對 EnumDisplaySettingsEx 進行一系列的呼叫,如下所示:針對第一次呼叫將 iModeNum 設定為零,然後針對每個後續呼叫將 iModeNum 遞增一個。 繼續呼叫函式,直到傳回值為零為止。
當您呼叫 EnumDisplaySettingsEx 並將 iModeNum 設為零時,操作系統會初始化並快取顯示裝置的相關信息。 當您呼叫 EnumDisplaySettingsEx 並將 iModeNum 設為非零值時,函式會傳回上次呼叫函式時所快取的資訊, 並將 iModeNum 設定為零。
[out] lpDevMode
DEVMODE 結構的指標,函式會儲存指定圖形模式的相關信息。 在呼叫 EnumDisplaySettingsEx 之前,請將 dmSize 成員設定為 sizeof (DEVMODE) ,並設定 dmDriverExtra 成員來指出可接收私人驅動程式數據的額外空間大小,以位元組為單位。
EnumDisplaySettingsEx 函式會填入 lpDevMode 的 dmFields 成員,以及 DEVMODE 結構的一或多個其他成員。 若要判斷呼叫 EnumDisplaySettingsEx 所設定的成員,請檢查 dmFields 位掩碼。 此函式通常會填入部分欄位包括:
- dmBitsPerPel
- dmPelsWidth
- dmPelsHeight
- dmDisplayFlags
- dmDisplayFrequency
- dmPosition
- dmDisplayOrientation
[in] dwFlags
此參數可以是下列值。
值 | 意義 |
---|---|
|
如果設定,函式會傳回配接器驅動程序報告的所有圖形模式,而不論監視功能為何。 否則,它只會傳回與目前監視器相容的模式。 |
|
如果設定,函式會以所有方向傳回圖形模式。 否則,它只會傳回與目前針對所要求顯示器設定相同方向的模式。 |
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。
備註
如果 iModeNum 大於顯示裝置最後一個圖形模式的索引,則函式會失敗。 如 iModeNum 參數的描述所述,您可以使用此行為來列舉所有顯示裝置的圖形模式。
DPI 虛擬化
此 API 不會參與 DPI 虛擬化。 指定的輸出一律以實體圖元為單位,而且與呼叫內容無關。注意
winuser.h 標頭會根據 UNICODE 預處理器常數的定義,將 EnumDisplaySettingsEx 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包括 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (於 Windows 10 10.0.14393 版) |