共用方式為


IDXGIOutputDuplication::GetFrameMoveRects 方法 (dxgi1_2.h)

取得目前桌面框架移動矩形的相關資訊。

語法

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

參數

[in] MoveRectsBufferSize

呼叫端傳遞至 pMoveRectBuffer 參數的緩衝區大小,以位元組為單位。

[out] pMoveRectBuffer

DXGI_OUTDUPL_MOVE_RECT 結構的指標 ,可識別桌面框架的移動矩形區域。

[out] pMoveRectsBufferSizeRequired

接收 GetFrameMoveRects 需要儲存緩衝區中移動區域資訊之 pMoveRectBuffer之位元組數目的變數指標。

如需傳回必要緩衝區大小的詳細資訊,請參閱。

傳回值

GetFrameMoveRects 會 傳回:

  • 如果已成功擷取已移動矩形的相關資訊,S_OK。
  • 如果桌面重複介面無效,DXGI_ERROR_ACCESS_LOST。 桌面重複介面通常會在桌面上顯示不同類型的影像時變成無效。 這種情況的範例包括:
    • 桌面交換器
    • 模式變更
    • 從 DWM 開啟、關閉 DWM 或其他全螢幕應用程式
    在此情況下,應用程式必須釋放 IDXGIOutputDuplication 介面,並為新內容建立新的 IDXGIOutputDuplication
  • 如果呼叫應用程式提供的緩衝區不夠大,DXGI_ERROR_MORE_DATA。
  • 如果應用程式呼叫 GetFrameMoveRects 而不擁有桌面映射,DXGI_ERROR_INVALID_CALL。
  • 如果 GetFrameMoveRects 的其中一個參數不正確,E_INVALIDARG;例如,如果 pMoveRectBuffer 為 Null。
  • 可能是 DXGI_ERROR 主題中所述的其他錯誤碼。

備註

GetFrameMoveRects 會將大小值儲存在 pMoveRectsBufferSizeRequired的變數中。 這個值會指定 GetFrameMoveRects 需要儲存移動區域相關資訊的位元組數目。 在下列情況下,您可以使用此值來判斷要配置給未來傳遞至 pMoveRectBuffer的緩衝區記憶體數量:

  • GetFrameMoveRects 因為緩衝區不夠大,所以DXGI_ERROR_MORE_DATA失敗。
  • GetFrameMoveRects 提供大於必要大小的緩衝區。 pMoveRectsBufferSizeRequired傳回的大小值會通知呼叫端,相較于MoveRectsBufferSize參數中配置和指定的緩衝區空間,實際使用的緩衝區空間量。
呼叫端也可以使用 pMoveRectsBufferSizeRequired 傳回的值來判斷傳回 的DXGI_OUTDUPL_MOVE_RECT 結構數目。

緩衝區包含目前框架的移動 RECT 清單。

注意 若要產生桌面的視覺精確複本,應用程式必須先處理所有移動 RECT,才能處理已變更的 RECT。
 

需求

   
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
目標平台 Windows
標頭 dxgi1_2.h
程式庫 Dxgi.lib

另請參閱

IDXGIOutputDuplication