Platform SDK: DirectX

IDirectDraw7::StartModeTest

IDirectDraw7::StartModeTest メソッドは、テストを開始して、現在のディスプレイ アダプタおよびモニタの組み合わせについてのリフレッシュ レート情報でシステム レジストリを更新する。通常、このメソッドを呼び出した後、IDirectDraw7::EvaluateMode を呼び出して、テストで表示されたモードのクリアまたは失敗を決定する。

HRESULT StartModeTest(
  LPSIZE   lpModesToTest,
  DWORD    dwNumEntries, 
  DWORD    dwFlags
);

パラメータ

lpModesToTest
テストするモードをスクリーン解像度の点から記述する SIZE 要素の配列へのポインタ。
dwNumEntries
lpModesToTest. がポイントする配列の要素数。
dwFlags
現時点で有効なフラグの値は、DDSMT_ISTESTREQUIRED のみである。このフラグを指定した場合、IDirectDraw7::StartModeTest はテストを開始しない。その代わり、lpModesToTest および dwNumEntries によって識別される解像度のテストが可能かどうか、またはテストが必要かどうかを示す値を返す。

戻り値

成功すれば、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 で宣言。

参照

IDirectDraw7::EvaluateModeリフレッシュ レートの列挙