Platform SDK: DirectX |
IDirectDraw7::EvaluateMode メソッドは、IDirectDraw7::StartModeTest を呼び出した後、各モードのテストのクリアまたは失敗を決定し、テストが完了するまでモードを 1 つずつテストする。
HRESULT EvaluateMode( DWORD dwFlags, DWORD *pSecondsUntilTimeout );
成功すれば、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 で宣言。