> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XAppCaptureOpenScreenshotStream

> XAppCaptureOpenScreenshotStream

# XAppCaptureOpenScreenshotStream

Ouvre un flux de capture d'écran.

## Syntaxe

```cpp theme={null}
HRESULT XAppCaptureOpenScreenshotStream(  
         const char* localId,  
         XAppCaptureScreenshotFormatFlag screenshotFormat,  
         XAppCaptureScreenshotStreamHandle* handle,  
         uint64_t* totalBytes  
)  
```

### Paramètres

*localId*   \_In\_\
Type : char\*

ID local de la capture d'écran retourné dans [XAppCaptureTakeScreenshotResult](/fr-CA/reference/system/xappcapture/structs/xappcapturetakescreenshotresult) après l'appel à [XAppCaptureTakeScreenshot](/fr-CA/reference/system/xappcapture/functions/xappcapturetakescreenshot).

*screenshotFormat*   \_In\_\
Type : [XAppCaptureScreenshotFormatFlag](/fr-CA/reference/system/xappcapture/enums/xappcapturescreenshotformatflag)

Indicateur de format de capture d'écran retourné dans [XAppCaptureTakeScreenshotResult](/fr-CA/reference/system/xappcapture/structs/xappcapturetakescreenshotresult) après l'appel à [XAppCaptureTakeScreenshot](/fr-CA/reference/system/xappcapture/functions/xappcapturetakescreenshot).

*handle*   \_Out\_\
Type : XAppCaptureScreenshotStreamHandle\*

Handle du flux de capture d'écran retourné à la suite de l'ouverture du flux.

*totalBytes*   \_Out\_opt\_\
Type : uint64\_t\*

Nombre total d'octets dans le flux.

### Valeur de retour

Type : HRESULT

Résultat de la fonction.

## Remarques

<Note>Cette fonction ne peut pas être appelée en toute sécurité sur un thread à délai critique. Pour plus d'informations, consultez [Threads à délai critique](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Les captures d'écran ne sont pas accessibles à partir de la partition du jeu; vous devez donc ouvrir un flux pour récupérer les captures d'écran prises par l'utilisateur ou avec [XAppCaptureTakeScreenshot](/fr-CA/reference/system/xappcapture/functions/xappcapturetakescreenshot). [XAppCaptureTakeScreenshot](/fr-CA/reference/system/xappcapture/functions/xappcapturetakescreenshot) retourne dans son résultat un *localID* qui est utilisé dans cette fonction pour récupérer la bonne capture d'écran. Le *localID* reste valide tant que la capture d'écran est conservée sur le disque. L'espace de stockage des captures d'écran sur la console est limité. Les captures d'écran les plus anciennes sont supprimées lorsque l'espace alloué est plein. Cela pourrait faire en sorte que la fonction d'ouverture de capture d'écran ne trouve pas un localID. Après avoir ouvert le flux, vous pouvez lire la capture d'écran avec [XAppCaptureReadScreenShotStream](/fr-CA/reference/system/xappcapture/functions/xappcapturereadscreenshotstream). Enfin, chaque flux doit être fermé avec [XAppCaptureCloseScreenshotStream](/fr-CA/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream) afin d'éviter une fuite de mémoire.

```cpp theme={null}
XAppCaptureTakeScreenshotResult takeScreenshotResult = {0};
XAppCaptureScreenshotStreamHandle handle = nullptr;
UINT64 totalBytesToRead = 0;
XAppCaptureScreenshotFormatFlag screenshotFormat = XAppCaptureScreenshotFormatFlag::SDR;
bool hdrAvailable = false;

/* ... obtain takeScreenshotResult with XAppCaptureTakeScreenshot. Refer to corresponding documentation ... */

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

/* Note: It is optional to obtain the HDR screenshot, if HDR is available. You will need to call XAppCaptureOpenScreenshotStream twice to obtain both SDR and HDR screenshots */
if (hdrAvailable)
{
    screenshotFormat = XAppCaptureScreenshotFormatFlag::HDR;
}

if (FAILED_LOG(XAppCaptureOpenScreenshotStream(takeScreenshotResult.localId, screenshotFormat, &handle, &totalBytesToRead)))
{
    return;
}

appLog.AddLog("%I64d bytes returned\n", totalBytesToRead);

/* You must always call XAppCaptureCloseScreenshotStream on an open XAppCaptureScreenshotStreamHandle to avoid a memory leak */
if (handle != nullptr)
{
    XAppCaptureCloseScreenshotStream(handle);
}

```

## Configuration requise

**En-tête :** XAppCapture.h

**Bibliothèque :** xgameruntime.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Documentation conceptuelle

* [Threads à délai critique](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

[Vue d'ensemble de GameDVR](/fr-CA/build/console-features/game-dvr/gamedvr-broadcast)\
[Membres de XAppCapture](/fr-CA/reference/system/xappcapture/xappcapture_members)\
[XAppCaptureReadScreenShotStream](/fr-CA/reference/system/xappcapture/functions/xappcapturereadscreenshotstream)\
[XAppCaptureTakeScreenshot](/fr-CA/reference/system/xappcapture/functions/xappcapturetakescreenshot)\
[XAppCaptureCloseScreenshotStream](/fr-CA/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream)


## Related topics

- [XAppCaptureOpenScreenshotStream](/reference/system/xappcapture/functions/xappcaptureopenscreenshotstream.md)
- [XAppCaptureScreenshotStream](/reference/system/xappcapture/structs/xappcapturescreenshotstream.md)
- [XAppCaptureReadScreenshotStream](/reference/system/xappcapture/functions/xappcapturereadscreenshotstream.md)
- [XAppCapture](/reference/system/xappcapture/xappcapture_members.md)
- [XAppCaptureCloseScreenshotStream](/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream.md)
