Bagikan melalui


Metode IDirectDraw7::StartModeTest (ddraw.h)

Memulai pengujian untuk memperbarui registri sistem dengan informasi laju refresh untuk adaptor tampilan saat ini dan kombinasi monitor. Panggilan ke metode ini biasanya diikuti oleh panggilan ke IDirectDraw7::EvaluateMode untuk melewati atau gagal mode yang ditampilkan oleh pengujian.

Sintaks

HRESULT StartModeTest(
  [in] LPSIZE unnamedParam1,
  [in] DWORD  unnamedParam2,
  [in] DWORD  unnamedParam3
);

Parameter

[in] unnamedParam1

Array elemen SIZE yang menjelaskan, dalam hal resolusi layar, mode yang harus diuji.

[in] unnamedParam2

Jumlah elemen dalam array yang ditentukan parameter lpModesToTest .

[in] unnamedParam3

Bendera yang menentukan opsi untuk memulai pengujian. Satu-satunya nilai bendera yang saat ini valid adalah DDSMT_ISTESTREQUIRED. Ketika bendera ini ditentukan, StartModeTest tidak memulai pengujian, tetapi sebaliknya mengembalikan nilai yang menunjukkan apakah mungkin atau perlu untuk menguji resolusi yang diidentifikasi oleh parameter lpModesToTest dan dwNumEntries .

Nilai kembali

Jika metode berhasil, nilai yang dikembalikan DD_OK.

Jika gagal, metode dapat mengembalikan salah satu nilai kesalahan berikut:

  • DDERR_CURRENTLYNOTAVAIL
  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_NOEXCLUSIVEMODE
  • DDERR_NOTFOUND
  • DDERR_TESTFINISHED
Saat metode dipanggil dengan bendera DDSMT_ISTESTREQUIRED, metode dapat mengembalikan salah satu nilai berikut:
  • DDERR_NEWMODE
  • DDERR_NODRIVERSUPPORT
  • DDERR_NOMONITORINFORMATION
  • DDERR_TESTFINISHED

Keterangan

Anda dapat menggunakan metode StartModeTest bersama dengan metode IDirectDraw7::EvaluateMode untuk menentukan laju refresh maksimum yang dapat didukung oleh monitor EDID dan kombinasi adaptor tampilan untuk setiap resolusi layar. Hasil pengujian disimpan dalam registri sistem dan memengaruhi pengoperasian IDirectDraw7::EnumDisplayModes ketika metode tersebut dipanggil dengan set bendera DDEDM_REFRESHRATES.

Secara khusus, panggilan ke StartModeTest mengarahkan DirectDraw untuk menetapkan serangkaian resolusi yang dapat diuji dan untuk menampilkan mode berdasarkan resolusi pertama dalam set. Panggilan berikutnya ke IDirectDraw7::EvaluateMode dapat digunakan untuk melewati atau gagal setiap mode dan untuk melanjutkan pengujian ke mode tampilan berikutnya.

StartModeTest hanya berhasil dengan monitor yang berisi data EDID. Jika monitor tidak sesuai dengan EDID, StartModeTest mengembalikan DDERR_TESTFINISHED tanpa menguji mode apa pun. Jika tabel EDID tidak berisi nilai yang lebih tinggi dari 60 Hz, tidak ada mode yang diuji. Laju refresh yang lebih tinggi dari 100 Hz diuji hanya jika tabel EDID berisi nilai yang lebih tinggi dari 85 Hz.

Jika Anda memanggil StartModeTest dengan daftar argumen (NULL, 0, 0), StartModeTest menghapus informasi laju refresh yang ada dari registri.

Pengujian tidak menjamin hanya menampilkan resolusi dalam array yang dijelaskan oleh parameter lpModesToTest dan dwNumEntries . Misalnya, resolusi 640×480 digunakan untuk mendapatkan laju refresh maksimum yang dapat dilihat untuk resolusi 320×200.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header ddraw.h
Pustaka Ddraw.lib
DLL Ddraw.dll

Lihat juga

IDirectDraw7