2013-01-07 41 views
1

如何確定winapi EnumDisplaySettings失敗?根據MSDNEnumDisplaySettings確定失敗

如果函數失敗,則返回值爲零。

圖形模式索引從零開始。要獲取顯示設備的所有圖形模式的信息,請按如下方式對 EnumDisplaySettings進行一系列調用:對於第一個 調用,將iModeNum設置爲零,併爲每個後續調用增加iModeNum 1。繼續調用函數 ,直到返回值爲零。

如何確定返回零是一個失敗的標誌或模式不存在(iModeNum值太大)?

沒有什麼關於GetLastError的內容。看起來這winapi沒有設置失敗的最後一個錯誤。

+2

「如果函數成功,則返回值不爲零。」是什麼讓你覺得歸零可能是成功的標誌?增加你枚舉的iModeNum直到返回值爲零(即失敗,從這個增量開始沒有更多的成功)。 –

回答

1

這是典型的GDI api調用,它們不設置GetLastError錯誤代碼。你得到的只是「它沒有工作」的返回值。

請注意,你需要必須開始與iModeNum爲0.如果返回FALSE,那麼你可以安全地假設有一些設備名稱參數嚴重錯誤。繼續遞增iModeNum,直到您獲得FALSE。