Compartilhar via


Método IDXGIOutputDuplication::AcquireNextFrame (dxgi1_2.h)

Indica que o aplicativo está pronto para processar a próxima imagem da área de trabalho.

Sintaxe

HRESULT AcquireNextFrame(
  [in]  UINT                    TimeoutInMilliseconds,
  [out] DXGI_OUTDUPL_FRAME_INFO *pFrameInfo,
  [out] IDXGIResource           **ppDesktopResource
);

Parâmetros

[in] TimeoutInMilliseconds

O intervalo de tempo limite em milissegundos. Esse intervalo especifica a quantidade de tempo que esse método aguarda por um novo quadro antes de retornar ao chamador. Esse método retornará se o intervalo passar e uma nova imagem da área de trabalho não estiver disponível.

Para obter mais informações sobre o intervalo de tempo limite, consulte Comentários.

[out] pFrameInfo

Um ponteiro para um local de memória que recebe a estrutura DXGI_OUTDUPL_FRAME_INFO que descreve as estatísticas de tempo e apresentação de um quadro.

[out] ppDesktopResource

Um ponteiro para uma variável que recebe a interface IDXGIResource da superfície que contém o bitmap da área de trabalho.

Retornar valor

AcquireNextFrame retorna:

  • S_OK se recebeu com êxito a próxima imagem da área de trabalho.
  • DXGI_ERROR_ACCESS_LOST se a interface de duplicação da área de trabalho for inválida. A interface de duplicação da área de trabalho normalmente se torna inválida quando um tipo diferente de imagem é exibido na área de trabalho. Exemplos dessa situação são:
    • Comutador da área de trabalho
    • Alteração de modo
    • Alternar do DWM ativado, DWM desativado ou outro aplicativo de tela inteira
    Nessa situação, o aplicativo deve liberar a interface IDXGIOutputDuplication e criar uma nova IDXGIOutputDuplication para o novo conteúdo.
  • DXGI_ERROR_WAIT_TIMEOUT se o intervalo de tempo limite tiver decorrido antes do próximo quadro da área de trabalho estar disponível.
  • DXGI_ERROR_INVALID_CALL se o aplicativo chamado AcquireNextFrame sem liberar o quadro anterior.
  • E_INVALIDARG se um dos parâmetros para AcquireNextFrame estiver incorreto; por exemplo, se pFrameInfo for NULL.
  • Possivelmente outros códigos de erro descritos no tópico DXGI_ERROR .

Comentários

Quando AcquireNextFrame retorna com êxito, o aplicativo de chamada pode acessar a imagem da área de trabalho que AcquireNextFrame retorna na variável em ppDesktopResource. Se o chamador especificar um intervalo de tempo limite zero no parâmetro TimeoutInMilliseconds , AcquireNextFrame verificará se há uma nova imagem da área de trabalho disponível, retornará imediatamente e indicará seu resultado com o valor retornado. Se o chamador especificar um intervalo de tempo limite INFINITE no parâmetro TimeoutInMilliseconds , o intervalo de tempo limite nunca será decorrido.

Nota Não é possível cancelar a espera especificada no parâmetro TimeoutInMilliseconds . Portanto, se você precisar marcar periodicamente para outras condições (por exemplo, um sinal de término), deverá especificar um intervalo de tempo limite não INFINITO. Após o intervalo de tempo limite decorrido, você pode marcar para essas outras condições e, em seguida, chamar AcquireNextFrame novamente para aguardar o próximo quadro.
 
AcquireNextFrame adquire um novo quadro de área de trabalho quando o sistema operacional atualiza a imagem de bitmap da área de trabalho ou altera a forma ou a posição de um ponteiro de hardware. O novo quadro que AcquireNextFrame adquire pode ter apenas a imagem da área de trabalho atualizada, apenas a forma ou a posição do ponteiro atualizada ou ambas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho dxgi1_2.h
Biblioteca Dxgi.lib

Confira também

IDXGIOutputDuplication