次の方法で共有


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

移動された領域に関する情報を pMoveRectBuffer のバッファーに格納するために GetFrameMoveRects が必要とするバイト数を受け取る変数へのポインター。

必要なバッファー サイズを返す方法の詳細については、「備考」を参照してください。

戻り値

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
Library Dxgi.lib

関連項目

IDXGIOutputDuplication