> ## 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

Abre una secuencia de captura de pantalla.

## Sintaxis

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

### Parámetros

*localId*   \_In\_\
Tipo: char\*

Id. local de la captura de pantalla devuelto en [XAppCaptureTakeScreenshotResult](/reference/system/xappcapture/structs/xappcapturetakescreenshotresult) después de llamar a [XAppCaptureTakeScreenshot](/reference/system/xappcapture/functions/xappcapturetakescreenshot).

*screenshotFormat*   \_In\_\
Tipo: [XAppCaptureScreenshotFormatFlag](/reference/system/xappcapture/enums/xappcapturescreenshotformatflag)

Marca de formato de captura de pantalla devuelta en [XAppCaptureTakeScreenshotResult](/reference/system/xappcapture/structs/xappcapturetakescreenshotresult) después de llamar a [XAppCaptureTakeScreenshot](/reference/system/xappcapture/functions/xappcapturetakescreenshot).

*handle*   \_Out\_\
Tipo: XAppCaptureScreenshotStreamHandle\*

Identificador de la secuencia de captura de pantalla devuelto como resultado de abrir la secuencia.

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

Número total de bytes de la secuencia.

### Valor devuelto

Tipo: HRESULT

Resultado de la función.

## Comentarios

<Note>No es seguro llamar a esta función en un subproceso con restricciones de tiempo. Para obtener más información, consulte [Subprocesos con restricciones de tiempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

No es posible acceder a las capturas de pantalla desde la partición del juego, por lo que debe abrir una secuencia para recuperar las capturas de pantalla realizadas por el usuario o con [XAppCaptureTakeScreenshot](/reference/system/xappcapture/functions/xappcapturetakescreenshot). [XAppCaptureTakeScreenshot](/reference/system/xappcapture/functions/xappcapturetakescreenshot) devuelve un *localID* en su resultado, que se usa en esta función para recuperar la captura de pantalla correcta. El *localID* será válido mientras la captura de pantalla se conserve en el disco. Solo hay una cantidad limitada de espacio en la consola en el que se almacenan las capturas de pantalla. Las capturas de pantalla más antiguas se eliminarán cuando se llene el espacio asignado. Esto podría provocar que la función de apertura de capturas de pantalla no encuentre un localID. Después de abrir la secuencia, puede leer la captura de pantalla con [XAppCaptureReadScreenShotStream](/reference/system/xappcapture/functions/xappcapturereadscreenshotstream). Por último, cada secuencia debe cerrarse con [XAppCaptureCloseScreenshotStream](/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream) para evitar una fuga de memoria.

```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);
}

```

## Requisitos

**Encabezado:** XAppCapture.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Documentación conceptual

* [Subprocesos con restricciones de tiempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Consulte también

[Información general de GameDVR](/build/console-features/game-dvr/gamedvr-broadcast)\
[Miembros de XAppCapture](/reference/system/xappcapture/xappcapture_members)\
[XAppCaptureReadScreenShotStream](/reference/system/xappcapture/functions/xappcapturereadscreenshotstream)\
[XAppCaptureTakeScreenshot](/reference/system/xappcapture/functions/xappcapturetakescreenshot)\
[XAppCaptureCloseScreenshotStream](/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream)


## Related topics

- [XAppCaptureScreenshotStream](/es/reference/system/xappcapture/structs/xappcapturescreenshotstream.md)
- [XAppCaptureReadScreenshotStream](/es/reference/system/xappcapture/functions/xappcapturereadscreenshotstream.md)
- [XAppCapture](/es/reference/system/xappcapture/xappcapture_members.md)
- [Contenedores de API de C# de Unity para el GDK](/es/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XAppCaptureCloseScreenshotStream](/es/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream.md)
