次の方法で共有


XAppCaptureTakeScreenshot

スクリーンショットを取得します。

構文

HRESULT XAppCaptureTakeScreenshot(  
         XUserHandle requestingUser,  
         XAppCaptureTakeScreenshotResult* result  
)  

パラメーター

requestingUser _In_
型: XUserHandle

スクリーンショットを要求しているユーザーを表すハンドル。

result _Out_
型: XAppCaptureTakeScreenshotResult*

返されるスクリーンショットの結果。

戻り値

型: HRESULT

関数の結果です。

解説

注意

この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。

注意

この機能は Xbox ゲーム ストリーミングではサポートされていません。 どのプラットフォームがサポートしているかを確認するには、以下の「要件」セクションを参照してください。

XAppCaptureTakeScreenshot は、ユーザーがトリガーしたかのようにスクリーンショットを取得します。 これによりトーストが表示され、ゲームのスクリーンショットが保存されます。 ゲームが SDR で実行されている場合は、1 つのファイルが生成されます。 ゲームが HDR で実行されている場合は、HDR 形式と SDR 形式で 2 つのファイルが生成されます。 ユーザーの設定によっては、スクリーンショットが Xbox Live に自動的にアップロードされる場合があります。 スクリーンショットが正常に取得されたら、XAppCaptureOpenScreenShotStream でスクリーンショット ストリームを開き、XAppCaptureReadScreenshotStream でスクリーンショットを読み取ることによって、結果のファイルを見ることができます。 どちらの関数でも、この関数から返される XAppCaptureTakeScreenshotResult で返されるローカル ID を使用する必要があります。

XAppCaptureTakeScreenshotResult takeScreenshotResult = {0};
XUserHandle user = nullptr;
/* See XUserAddAsync, XUserAddResult on how to initialize XUserHandle */
bool hasHDR = false;

LOG_IF_FAILED(XAppCaptureTakeScreenshot(user, &takeScreenshotResult));

hasHDR = static_cast<bool>(takeScreenshotResult.availableScreenshotFormats & XAppCaptureScreenshotFormatFlag::HDR);

appLog.AddLog("LocalId %s (%s)\n", takeScreenshotResult.localId, hasHDR ? "SDR & HDR" : "SDR only");

要件

ヘッダー: XAppCapture.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

ゲーム録画の概要
XAppCapture のメンバー
XAppCaptureOpenScreenShotStream
XAppCaptureReadScreenShotStream
XAppCaptureCloseScreenshotStream
XAppCaptureTakeScreenshotResult