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 或其他全螢幕應用程式
- 如果呼叫應用程式提供的緩衝區不夠大,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參數中配置和指定的緩衝區空間,實際使用的緩衝區空間量。
緩衝區包含目前框架的移動 RECT 清單。
注意 若要產生桌面的視覺精確複本,應用程式必須先處理所有移動 RECT,才能處理已變更的 RECT。
需求
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | dxgi1_2.h |
程式庫 | Dxgi.lib |