Compartilhar via


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

Obtém informações sobre os retângulos movidos para o quadro da área de trabalho atual.

Sintaxe

HRESULT GetFrameMoveRects(
  [in]  UINT                   MoveRectsBufferSize,
  [out] DXGI_OUTDUPL_MOVE_RECT *pMoveRectBuffer,
  [out] UINT                   *pMoveRectsBufferSizeRequired
);

Parâmetros

[in] MoveRectsBufferSize

O tamanho em bytes do buffer que o chamador passou para o parâmetro pMoveRectBuffer .

[out] pMoveRectBuffer

Um ponteiro para uma matriz de estruturas DXGI_OUTDUPL_MOVE_RECT que identifica as regiões de retângulo movidas para o quadro da área de trabalho.

[out] pMoveRectsBufferSizeRequired

Ponteiro para uma variável que recebe o número de bytes que GetFrameMoveRects precisa para armazenar informações sobre regiões movidas no buffer em pMoveRectBuffer.

Para obter mais informações sobre como retornar o tamanho do buffer necessário, consulte Comentários.

Valor retornado

GetFrameMoveRects retorna:

  • S_OK se ele recuperou com êxito informações sobre retângulos movidos.
  • 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_MORE_DATA se o buffer fornecido pelo aplicativo de chamada não for grande o suficiente.
  • DXGI_ERROR_INVALID_CALL se o aplicativo chamado GetFrameMoveRects sem possuir a imagem da área de trabalho.
  • E_INVALIDARG se um dos parâmetros para GetFrameMoveRects estiver incorreto; por exemplo, se pMoveRectBuffer for NULL.
  • Possivelmente outros códigos de erro descritos no tópico DXGI_ERROR .

Comentários

GetFrameMoveRects armazena um valor de tamanho na variável em pMoveRectsBufferSizeRequired. Esse valor especifica o número de bytes que GetFrameMoveRects precisa para armazenar informações sobre regiões movidas. Você pode usar esse valor nas seguintes situações para determinar a quantidade de memória a ser alocada para buffers futuros que você passa para pMoveRectBuffer:

  • GetFrameMoveRects falha com DXGI_ERROR_MORE_DATA porque o buffer não é grande o suficiente.
  • GetFrameMoveRects fornece um buffer maior do que o necessário. O valor de tamanho retornado em pMoveRectsBufferSizeRequired informa ao chamador quanto espaço de buffer foi realmente usado em comparação com a quantidade de espaço em buffer que o chamador alocou e especificou no parâmetro MoveRectsBufferSize .
O chamador também pode usar o valor retornado em pMoveRectsBufferSizeRequired para determinar o número de estruturas de DXGI_OUTDUPL_MOVE_RECT retornadas.

O buffer contém a lista de RECTs de movimentação para o quadro atual.

Nota Para produzir uma cópia visualmente precisa da área de trabalho, um aplicativo deve primeiro processar todos os RECTs de movimentação antes de processar sujo RECTs.
 

Requisitos

   
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