Condividi tramite


Metodo IDXGIOutputDuplication::GetFrameMoveRects (dxgi1_2.h)

Ottiene informazioni sui rettangoli spostati per il frame desktop corrente.

Sintassi

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

Parametri

[in] MoveRectsBufferSize

Dimensione in byte del buffer passata dal chiamante al parametro pMoveRectBuffer .

[out] pMoveRectBuffer

Puntatore a una matrice di strutture DXGI_OUTDUPL_MOVE_RECT che identifica le aree rettangolo spostate per il frame desktop.

[out] pMoveRectsBufferSizeRequired

Puntatore a una variabile che riceve il numero di byte che GetFrameMoveRects deve archiviare le informazioni sulle aree spostate nel buffer in pMoveRectBuffer.

Per altre informazioni sulla restituzione delle dimensioni del buffer necessarie, vedere Osservazioni.

Valore restituito

GetFrameMoveRects restituisce:

  • S_OK se ha recuperato correttamente le informazioni sui rettangoli spostati.
  • DXGI_ERROR_ACCESS_LOST se l'interfaccia di duplicazione desktop non è valida. L'interfaccia di duplicazione desktop in genere non è valida quando viene visualizzato un tipo diverso di immagine sul desktop. Ecco alcuni esempi di questa situazione:
    • Commutatore desktop
    • Modifica della modalità
    • Passare da DWM su, DWM disattivato o da un'altra applicazione a schermo intero
    In questo caso, l'applicazione deve rilasciare l'interfaccia IDXGIOutputDuplication e creare un nuovo IDXGIOutputDuplication per il nuovo contenuto.
  • DXGI_ERROR_MORE_DATA se il buffer fornito dall'applicazione chiamante non è sufficientemente grande.
  • DXGI_ERROR_INVALID_CALL se l'applicazione denominata GetFrameMoveRects senza possedere l'immagine desktop.
  • E_INVALIDARG se uno dei parametri per GetFrameMoveRects non è corretto; ad esempio, se pMoveRectBuffer è NULL.
  • Possibilmente altri codici di errore descritti nell'argomento DXGI_ERROR .

Commenti

GetFrameMoveRects archivia un valore di dimensione nella variabile in pMoveRectsBufferSizeRequired. Questo valore specifica il numero di byte che GetFrameMoveRects deve archiviare le informazioni sulle aree spostate. È possibile usare questo valore nelle situazioni seguenti per determinare la quantità di memoria da allocare per i buffer futuri passati a pMoveRectBuffer:

  • GetFrameMoveRects ha esito negativo con DXGI_ERROR_MORE_DATA perché il buffer non è sufficientemente grande.
  • GetFrameMoveRects fornisce un buffer maggiore del necessario. Il valore di dimensione restituito in pMoveRectsBufferSizeRequired informa il chiamante della quantità di spazio buffer effettivamente utilizzata rispetto alla quantità di spazio buffer allocata e specificata dal chiamante nel parametro MoveRectsBufferSize .
Il chiamante può anche usare il valore restituito in pMoveRectsBufferSizeRequired per determinare il numero di strutture DXGI_OUTDUPL_MOVE_RECT restituite.

Il buffer contiene l'elenco di RECT di spostamento per il frame corrente.

Nota Per produrre una copia visivamente accurata del desktop, un'applicazione deve prima elaborare tutte le recte di spostamento prima di elaborare recti sporchi.
 

Requisiti

   
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione dxgi1_2.h
Libreria Dxgi.lib

Vedi anche

IDXGIOutputDuplicazione