IDirectDraw7::StartModeTest 方法 (ddraw.h)
起始測試,以使用目前顯示適配卡和監視器組合的重新整理速率資訊來更新系統登錄。 對此方法的呼叫通常會接著呼叫 IDirectDraw7::EvaluateMode ,以通過或失敗測試所顯示的模式。
語法
HRESULT StartModeTest(
[in] LPSIZE unnamedParam1,
[in] DWORD unnamedParam2,
[in] DWORD unnamedParam3
);
參數
[in] unnamedParam1
SIZE 元素陣列,描述應該測試的螢幕解析度。
[in] unnamedParam2
lpModesToTest 參數指定之陣列中的元素數目。
[in] unnamedParam3
指定啟動測試選項的旗標。 目前唯一有效的旗標值是DDSMT_ISTESTREQUIRED。 指定此旗標時, StartModeTest 不會起始測試,而是傳回值,指出 lpModesToTest 和 dwNumEntries 參數識別的解析度是否可行或必要。
傳回值
如果方法成功,傳回值會DD_OK。
如果失敗,方法可以傳回下列其中一個錯誤值:
- DDERR_CURRENTLYNOTAVAIL
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_NOEXCLUSIVEMODE
- DDERR_NOTFOUND
- DDERR_TESTFINISHED
- DDERR_NEWMODE
- DDERR_NODRIVERSUPPORT
- DDERR_NOMONITORINFORMATION
- DDERR_TESTFINISHED
備註
您可以使用 StartModeTest 方法搭配 IDirectDraw7::EvaluateMode 方法來判斷 EDID 監視器和顯示適配卡組合可以支援每個螢幕解析度的最大重新整理速率。 測試的結果會儲存在系統登錄中,並在呼叫該方法並設定DDEDM_REFRESHRATES旗標時,影響 IDirectDraw7::EnumDisplayModes 的作業。
具體而言,呼叫 StartModeTest 會指示 DirectDraw 建立一組可測試的解析度,並根據集合中的第一個解析度顯示模式。 後續呼叫 IDirectDraw7::EvaluateMode 可用來通過或失敗每個模式,並將測試前進到下一個顯示模式。
StartModeTest 只會與包含 EDID 資料的監視器一起成功。 如果監視器不符合EDID規範, StartModeTest 會傳回DDERR_TESTFINISHED而不測試任何模式。 如果EDID資料表未包含高於60 Hz的值,則不會測試任何模式。 只有在 EDID 數據表包含高於 85 Hz 的值時,才會測試高於 100 Hz 的重新整理速率。
如果您使用 NULL、0、0) (的自變數清單呼叫 StartModeTest,StartModeTest 會清除登錄中現有的重新整理速率資訊。
測試不保證只顯示 lpModesToTest 和 dwNumEntries 參數所描述陣列中的解析度。 例如,640×480 解析度是用來取得 320×200 解析度的最大可檢視重新整理率。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | ddraw.h |
程式庫 | Ddraw.lib |
Dll | Ddraw.dll |