IDXGIOutputDuplication::GetFrameMoveRects-Methode (dxgi1_2.h)

Ruft Informationen zu den verschobenen Rechtecken für den aktuellen Desktopframe ab.

Syntax

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

Parameter

[in] MoveRectsBufferSize

Die Größe des Puffers in Bytes, den der Aufrufer an den Parameter pMoveRectBuffer übergeben hat.

[out] pMoveRectBuffer

Ein Zeiger auf ein Array von DXGI_OUTDUPL_MOVE_RECT Strukturen, das die verschobenen Rechteckbereiche für den Desktopframe identifiziert.

[out] pMoveRectsBufferSizeRequired

Zeiger auf eine Variable, die die Anzahl von Bytes empfängt, die GetFrameMoveRects benötigt, um Informationen zu verschobenen Regionen im Puffer bei pMoveRectBuffer zu speichern.

Weitere Informationen zum Zurückgeben der erforderlichen Puffergröße finden Sie unter Hinweise.

Rückgabewert

GetFrameMoveRects gibt Folgendes zurück:

  • S_OK, ob Informationen zu verschobenen Rechtecken erfolgreich abgerufen wurden.
  • DXGI_ERROR_ACCESS_LOST, wenn die Desktopduplizierungsschnittstelle ungültig ist. Die Desktopduplizierungsschnittstelle wird in der Regel ungültig, wenn ein anderer Bildtyp auf dem Desktop angezeigt wird. Beispiele für diese Situation sind:
    • Desktopswitch
    • Modusänderung
    • Wechseln von DWM ein, DWM aus oder einer anderen Vollbildanwendung
    In diesem Fall muss die Anwendung die IDXGIOutputDuplication-Schnittstelle freigeben und eine neue IDXGIOutputDuplication für den neuen Inhalt erstellen.
  • DXGI_ERROR_MORE_DATA, wenn der Puffer, den die aufrufende Anwendung bereitgestellt hat, nicht groß genug ist.
  • DXGI_ERROR_INVALID_CALL, wenn die Anwendung GetFrameMoveRects aufgerufen hat , ohne das Desktopimage zu besitzen.
  • E_INVALIDARG, wenn einer der Parameter für GetFrameMoveRects falsch ist; Beispiel: pMoveRectBuffer ist NULL.
  • Möglicherweise weitere Fehlercodes, die im Thema DXGI_ERROR beschrieben werden.

Hinweise

GetFrameMoveRects speichert einen Größenwert in der Variablen unter pMoveRectsBufferSizeRequired. Dieser Wert gibt die Anzahl von Bytes an, die GetFrameMoveRects benötigt, um Informationen zu verschobenen Regionen zu speichern. Sie können diesen Wert in den folgenden Situationen verwenden, um die Menge an Arbeitsspeicher zu bestimmen, die für zukünftige Puffer zugewiesen werden soll, die Sie an pMoveRectBuffer übergeben:

  • GetFrameMoveRects schlägt mit DXGI_ERROR_MORE_DATA fehl, da der Puffer nicht groß genug ist.
  • GetFrameMoveRects stellt einen Puffer bereit, der größer als erforderlich ist. Der bei pMoveRectsBufferSizeRequired zurückgegebene Größenwert informiert den Aufrufer darüber, wie viel Pufferspeicher tatsächlich verwendet wurde im Vergleich zu dem Pufferspeicher, den der Aufrufer zugeordnet und im MoveRectsBufferSize-Parameter angegeben hat.
Der Aufrufer kann auch den wert verwenden, der bei pMoveRectsBufferSizeRequired zurückgegeben wird , um die Anzahl der zurückgegebenen DXGI_OUTDUPL_MOVE_RECT-Strukturen zu bestimmen.

Der Puffer enthält die Liste der Verschiebungs-RECTs für den aktuellen Frame.

Hinweis Um eine visuell genaue Kopie des Desktops zu erstellen, muss eine Anwendung zunächst alle Verschiebungs-RECTs verarbeiten, bevor sie modifiziert RECTs verarbeitet.
 

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dxgi1_2.h
Bibliothek Dxgi.lib

Weitere Informationen

IDXGIOutputDuplication