Platform SDK: DirectX |
IDirectDraw7::StartModeTest メソッドは、テストを開始して、現在のディスプレイ アダプタおよびモニタの組み合わせについてのリフレッシュ レート情報でシステム レジストリを更新する。通常、このメソッドを呼び出した後、IDirectDraw7::EvaluateMode を呼び出して、テストで表示されたモードのクリアまたは失敗を決定する。
HRESULT StartModeTest( LPSIZE lpModesToTest, DWORD dwNumEntries, DWORD dwFlags );
成功すれば、DD_OK を返す。
失敗すれば、以下のエラー値のいずれかを返す。
DDERR_CURRENTLYNOTAVAIL |
DDERR_INVALIDOBJECT |
DDERR_INVALIDPARAMS |
DDERR_NOEXCLUSIVEMODE |
DDERR_NOTFOUND |
DDERR_TESTFINISHED |
DDSMT_ISTESTREQUIRED フラグでメソッドを呼び出した場合、以下の値のいずれかを返す。
DDERR_NEWMODE |
DDERR_NODRIVERSUPPORT |
DDERR_NOMONITORINFORMATION |
DDERR_TESTFINISHED |
IDirectDraw7::StartModeTest メソッドを IDirectDraw7::EvaluateMode と併用すれば、EDID モニタおよびディスプレイ アダプタの組み合わせによって各スクリーン解像度でサポートできる最大リフレッシュ レートを決定できる。テストの結果は、システム レジストリに格納され、IDirectDraw7::EnumDisplayMode を DDEDM_REFRESHRATES フラグ セットで呼び出したときの処理に影響する。
特に IDirectDraw7::StartModeTest は、テスト可能な解像度のセットを作成して、そのセット内の最初の解像度に基づいてモードを表示するよう DirectDraw に命令する。この呼び出しに続く IDirectDraw7::EvaluateMode の呼び出しでは、各モードのテストのクリアまたは失敗を決定して、次のディスプレイ モードのテストに進む。
このメソッドは、EDID データを含むモニタに対してのみ成功する。モニタが EDID 準拠でない場合、メソッドはモードのテストを行わず DDERR_TESTFINISHED を返す。EDID テーブルに 60 Hz より高い値がない場合、モードのテストは行われない。100 Hz より高いリフレッシュ レートのテストが行われるのは、EDID テーブルに 85 Hz より高い値がある場合のみである。
(NULL, 0, 0) の引数リストでメソッドを呼び出すと、既存のリフレッシュ レート情報がレジストリから消去される。
テストは、lpModesToTest および dwNumEntries パラメータで記述される配列の解像度における表示のみを保証するものではない。たとえば、640 × 480 解像度を使用して、320 × 200 解像度での最大表示リフレッシュ レートを取得できる。
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 98 が必要。
ヘッダー : ddraw.h で宣言。