次の方法で共有


IDXGIOutputDuplication::AcquireNextFrame メソッド (dxgi1_2.h)

アプリケーションが次のデスクトップ イメージを処理する準備ができていることを示します。

構文

HRESULT AcquireNextFrame(
  [in]  UINT                    TimeoutInMilliseconds,
  [out] DXGI_OUTDUPL_FRAME_INFO *pFrameInfo,
  [out] IDXGIResource           **ppDesktopResource
);

パラメーター

[in] TimeoutInMilliseconds

タイムアウト間隔 (ミリ秒単位)。 この間隔は、このメソッドが呼び出し元に戻るまでに新しいフレームを待機する時間を指定します。 このメソッドは、間隔が経過し、新しいデスクトップ イメージが使用できない場合に を返します。

タイムアウト間隔の詳細については、「解説」を参照してください。

[out] pFrameInfo

フレームのタイミングとプレゼンテーションの統計情報を記述する DXGI_OUTDUPL_FRAME_INFO 構造体を受け取るメモリ位置へのポインター。

[out] ppDesktopResource

デスクトップ ビットマップを含むサーフェスの IDXGIResource インターフェイスを受け取る変数へのポインター。

戻り値

AcquireNextFrame は 次を返します。

  • 次のデスクトップ イメージが正常に受信された場合にS_OKします。
  • デスクトップ重複インターフェイスが無効な場合にDXGI_ERROR_ACCESS_LOSTします。 デスクトップの複製インターフェイスは、通常、別の種類のイメージがデスクトップに表示されると無効になります。 この状況の例を次に示します。
    • デスクトップ スイッチ
    • モードの変更
    • DWM オン、DWM オフ、またはその他の全画面表示アプリケーションから切り替える
    このような場合、アプリケーションは IDXGIOutputDuplication インターフェイスを解放し、新しいコンテンツの新しい IDXGIOutputDuplication を作成する必要があります。
  • 次のデスクトップ フレームが使用可能になるまでにタイムアウト間隔が経過した場合にDXGI_ERROR_WAIT_TIMEOUTします。
  • アプリケーションが前のフレームを解放せずに AcquireNextFrame を呼び出した場合にDXGI_ERROR_INVALID_CALLします。
  • AcquireNextFrame のパラメーターの 1 つが正しくない場合にE_INVALIDARGします。たとえば、pFrameInfo が NULL の場合です。
  • 場合によっては、 DXGI_ERROR トピックで説明されているその他のエラー コード。

注釈

AcquireNextFrame が正常に返されると、呼び出し元のアプリケーションは、AcquireNextFrameppDesktopResource の変数で返すデスクトップ イメージにアクセスできます。 呼び出し元が TimeoutInMilliseconds パラメーターでタイムアウト間隔を 0 に指定した場合、 AcquireNextFrame は、使用可能な新しいデスクトップ イメージがあるかどうかを確認し、すぐにを返し、戻り値でその結果を示します。 呼び出し元が TimeoutInMilliseconds パラメーターに INFINITE タイムアウト間隔を指定した場合、タイムアウト間隔は経過しません。

メモTimeoutInMilliseconds パラメーターで指定した待機を取り消すことはできません。 したがって、他の条件 (終了シグナルなど) に対して定期的にチェックする必要がある場合は、INFINITE 以外のタイムアウト間隔を指定する必要があります。 タイムアウト間隔が経過した後、これらの他の条件をチェックしてから、AcquireNextFrame をもう一度呼び出して、次のフレームを待機できます。
 
AcquireNextFrame は、オペレーティング システムがデスクトップ ビットマップ イメージを更新するか、ハードウェア ポインターの図形または位置を変更したときに、新しいデスクトップ フレームを取得します。 AcquireNextFrame が取得する新しいフレームでは、デスクトップ イメージのみが更新され、ポインターの図形または位置のみが更新されるか、またはその両方が更新される場合があります。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dxgi1_2.h
Library Dxgi.lib

こちらもご覧ください

IDXGIOutputDuplication