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
- 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 |