Compartilhar via


Método IDirectDraw7::StartModeTest (ddraw.h)

Inicia um teste para atualizar o registro do sistema com informações de taxa de atualização para a combinação atual do adaptador de vídeo e do monitor. Uma chamada para esse método normalmente é seguida por chamadas para IDirectDraw7::EvaluateMode para passar ou falhar modos exibidos pelo teste.

Sintaxe

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

Parâmetros

[in] unnamedParam1

Uma matriz de elementos SIZE que descrevem, em termos de resoluções de tela, os modos que devem ser testados.

[in] unnamedParam2

O número de elementos na matriz que o parâmetro lpModesToTest especifica.

[in] unnamedParam3

Sinalizadores que especificam opções para iniciar um teste. O único valor de sinalizador válido no momento é DDSMT_ISTESTREQUIRED. Quando esse sinalizador é especificado, StartModeTest não inicia um teste, mas retorna um valor que indica se é possível ou necessário testar as resoluções que os parâmetros lpModesToTest e dwNumEntries identificam.

Retornar valor

Se o método for bem-sucedido, o valor retornado será DD_OK.

Se falhar, o método poderá retornar um dos seguintes valores de erro:

  • DDERR_CURRENTLYNOTAVAIL
  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_NOEXCLUSIVEMODE
  • DDERR_NOTFOUND
  • DDERR_TESTFINISHED
Quando o método é chamado com o sinalizador DDSMT_ISTESTREQUIRED, ele pode retornar um dos seguintes valores:
  • DDERR_NEWMODE
  • DDERR_NODRIVERSUPPORT
  • DDERR_NOMONITORINFORMATION
  • DDERR_TESTFINISHED

Comentários

Você pode usar o método StartModeTest junto com o método IDirectDraw7::EvaluateMode para determinar a taxa de atualização máxima que uma combinação de monitor EDID e adaptador de vídeo pode dar suporte para cada resolução de tela. Os resultados do teste são armazenados no registro do sistema e afetam a operação de IDirectDraw7::EnumDisplayModes quando esse método é chamado com o sinalizador DDEDM_REFRESHRATES definido.

Especificamente, uma chamada para StartModeTest direciona o DirectDraw para estabelecer um conjunto de resoluções testáveis e exibir um modo com base na primeira resolução do conjunto. Chamadas subsequentes para IDirectDraw7::EvaluateMode podem ser usadas para passar ou falhar em cada modo e para avançar o teste para o próximo modo de exibição.

StartModeTest é bem-sucedido somente com monitores que contêm dados EDID. Se o monitor não estiver em conformidade com EDID, StartModeTest retornará DDERR_TESTFINISHED sem testar nenhum modo. Se a tabela EDID não contiver valores superiores a 60 Hz, nenhum modo será testado. As taxas de atualização superiores a 100 Hz serão testadas somente se a tabela EDID contiver valores maiores que 85 Hz.

Se você chamar StartModeTest com uma lista de argumentos de (NULL, 0, 0), StartModeTest limpará as informações de taxa de atualização existentes do registro.

O teste não garante exibir apenas as resoluções na matriz descritas pelos parâmetros lpModesToTest e dwNumEntries . Por exemplo, a resolução 640×480 é usada para obter uma taxa máxima de atualização visualizável para a resolução de 320×200.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho ddraw.h
Biblioteca Ddraw.lib
DLL Ddraw.dll

Confira também

IDirectDraw7