Freigeben über


IDirectDraw7::StartModeTest-Methode (ddraw.h)

Initiiert einen Test, um die Systemregistrierung mit Informationen zur Aktualisierungsrate für die aktuelle Anzeigeadapter- und Monitorkombination zu aktualisieren. Auf einen Aufruf dieser Methode folgen in der Regel Aufrufe von IDirectDraw7::EvaluateMode , um die vom Test angezeigten Modi zu bestehen oder fehlzuschlagen.

Syntax

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

Parameter

[in] unnamedParam1

Ein Array von SIZE-Elementen, die in Bezug auf Bildschirmauflösungen die Modi beschreiben, die getestet werden sollen.

[in] unnamedParam2

Die Anzahl der Elemente im Array, die der parameter lpModesToTest angibt.

[in] unnamedParam3

Flags, die Optionen zum Starten eines Tests angeben. Der einzige derzeit gültige Flagwert ist DDSMT_ISTESTREQUIRED. Wenn dieses Flag angegeben ist, initiiert StartModeTest keinen Test, sondern gibt stattdessen einen Wert zurück, der angibt, ob es möglich oder notwendig ist, die Auflösungen zu testen, die die Parameter lpModesToTest und dwNumEntries identifizieren.

Rückgabewert

Wenn die Methode erfolgreich ist, wird der Rückgabewert DD_OK.

Wenn ein Fehler auftritt, kann die -Methode einen der folgenden Fehlerwerte zurückgeben:

  • DDERR_CURRENTLYNOTAVAIL
  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_NOEXCLUSIVEMODE
  • DDERR_NOTFOUND
  • DDERR_TESTFINISHED
Wenn die -Methode mit dem DDSMT_ISTESTREQUIRED-Flag aufgerufen wird, kann sie einen der folgenden Werte zurückgeben:
  • DDERR_NEWMODE
  • DDERR_NODRIVERSUPPORT
  • DDERR_NOMONITORINFORMATION
  • DDERR_TESTFINISHED

Hinweise

Sie können die StartModeTest-Methode zusammen mit der IDirectDraw7::EvaluateMode-Methode verwenden, um die maximale Aktualisierungsrate zu bestimmen, die eine EDID-Monitor- und Displayadapterkombination für jede Bildschirmauflösung unterstützen kann. Die Ergebnisse der Tests werden in der Systemregistrierung gespeichert und wirken sich auf den Betrieb von IDirectDraw7::EnumDisplayModes aus, wenn diese Methode mit festgelegtem DDEDM_REFRESHRATES-Flag aufgerufen wird.

Insbesondere weist ein Aufruf von StartModeTest DirectDraw an, eine Reihe testbarer Auflösungen einzurichten und einen Modus basierend auf der ersten Auflösung im Satz anzuzeigen. Nachfolgende Aufrufe von IDirectDraw7::EvaluateMode können verwendet werden, um jeden Modus zu bestehen oder zu fehlschlagen und den Test in den nächsten Anzeigemodus zu versetzen.

StartModeTest ist nur mit Monitoren erfolgreich, die EDID-Daten enthalten. Wenn der Monitor nicht EDID-kompatibel ist, gibt StartModeTest DDERR_TESTFINISHED zurück, ohne modi zu testen. Wenn die EDID-Tabelle keine Werte über 60 Hz enthält, werden keine Modi getestet. Aktualisierungsraten über 100 Hz werden nur getestet, wenn die EDID-Tabelle Werte über 85 Hz enthält.

Wenn Sie StartModeTest mit einer Argumentliste von (NULL, 0, 0) aufrufen, löscht StartModeTest vorhandene Aktualisierungsratesinformationen aus der Registrierung.

Der Test garantiert nicht, dass nur die Auflösungen in dem Array angezeigt werden, das durch die Parameter lpModesToTest und dwNumEntries beschrieben wird. Beispielsweise wird die Auflösung 640×480 verwendet, um eine maximale anzeigebare Aktualisierungsrate für die Auflösung 320×200 zu erhalten.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile ddraw.h
Bibliothek Ddraw.lib
DLL Ddraw.dll

Weitere Informationen

IDirectDraw7