Platform SDK: DirectX

IDirectDraw7::EvaluateMode

IDirectDraw7::EvaluateMode メソッドは、IDirectDraw7::StartModeTest を呼び出した後、各モードのテストのクリアまたは失敗を決定し、テストが完了するまでモードを 1 つずつテストする。

HRESULT EvaluateMode(
  DWORD  dwFlags,
  DWORD  *pSecondsUntilTimeout
);

パラメータ

dwFlags
テストするモードのステータスを示すフラグ。
DDEM_MODEPASSED
モードがテストにクリアした。
DDEM_MODEFAILED
モードがテストに失敗した。
pSecondsUntilTimeout
現在のモードのクリアまたは失敗を明示的に行わない限り、自動的に失敗と見なすまでの秒数を示す値を受け取る DWORD へのポインタ。

戻り値

成功すれば、DD_OK を返す。

失敗または完了の場合は、以下のエラー値のいずれかを返す。

DDERR_TESTFINISHED
DDERR_NEWMODE
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_NOTFOUND

注意

IDirectDraw7::EvaluateMode メソッドを IDirectDraw7::StartModeTest メソッドと併用すれば、EDID モニタおよびディスプレイ アダプタの組み合わせによって各スクリーン解像度でサポートできる最大リフレッシュ レートを決定できる。

特に IDirectDraw7::StartModeTest は、テスト可能な解像度のセットを作成し、そのセット内の最初の解像度に基づいてモードを表示するよう DirectDraw に命令する。この呼び出しに続く IDirectDraw7::EvaluateMode の呼び出しでは、各モードのテストのクリアまたは失敗を決定して、次のディスプレイ モードのテストに進む。このメソッドは、指定の解像度をサポートする最大リフレッシュ レートから順にテスト可能解像度を 1 つずつテストする。指定の解像度のリフレッシュ レートがテストにクリアすると、それより低いリフレッシュ レートのテストは省略される。

テストが初期化された場合、あるいはモードがテストにクリアまたは失敗した場合、DirectDraw は 15 秒のタイムアウトを設定し直す。アプリケーションでは、dwFlags 引数の値を 0 に設定して IDirectDraw7::EvaluateMode を呼び出すことで、現在のモードがテストにクリアまたは失敗するまでの残り時間を監視できる。IDirectDraw7::EvaluateMode が呼び出された場合のみ、DirectDraw はモードを変更またはテストを終了するので注意すること。ただし、タイムアウト期間の経過後にメソッドが呼び出された場合は、dwFlags 引数の設定値には無関係に、現在のモードは失敗する。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 98 が必要。
  ヘッダー : ddraw.h で宣言。

参照

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