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 |