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

# XStoreCreateContext

> XStoreCreateContext

# XStoreCreateContext

Crea un contexto de la tienda para el usuario especificado.

## Sintaxis

```cpp theme={null}
HRESULT XStoreCreateContext(  
         const XUserHandle user,  
         XStoreContextHandle* storeContextHandle  
)  
```

### Parámetros

*user*   \_In\_opt\_\
Tipo: XUserHandle

El usuario para el que se creará el contexto de la tienda.\
Este parámetro es opcional solo para los juegos de PC: simplemente pase un valor nullptr. En PC se usa automáticamente el usuario que ha iniciado sesión en Microsoft Store y este parámetro se omite.
Para los juegos de consola se requiere un XUser válido.

*storeContextHandle*   \_Out\_\
Tipo: XStoreContextHandle\*

Si la llamada se ejecuta correctamente, contiene el contexto de la tienda creado.

### Valor devuelto

Tipo: HRESULT

HRESULT de éxito o código de error.

## Comentarios

**NOTA:** En las consolas, el XStoreContextHandle creado por esta función se invalida después de un evento de suspensión o de reanudación rápida. Para controlar estas condiciones de forma segura, se recomienda cerrar un XStoreContextHandle y volver a crearlo cada vez que el juego se reanude desde un estado suspendido.

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

Cuando haya terminado de usar el **XStoreContextHandle** creado por esta función, debe cerrarlo con [XStoreCloseContextHandle](/reference/system/xstore/functions/xstoreclosecontexthandle). No cerrar el identificador provocará una pérdida de memoria. El contexto de la tienda se usa para identificar al usuario cuya información se recuperará en varias de las llamadas a la API de **XStore**. El siguiente fragmento de código muestra un ejemplo de creación de un contexto de la tienda.

```cpp theme={null}
void CALLBACK GameLicenseChangedCallback(void* context)
{
    UNREFERENCED_PARAMETER(context);
    printf("**** License Changed ****\r\n");
}

void CreateStoreContextHandle(XUserHandle userHandle, XTaskQueueHandle taskQueueHandle)
{
    // As a rule, it would be a good idea to create one of these
    // and keep it alive through the lifetime of the game
    XStoreContextHandle storeContextHandle;

    HRESULT hr = XStoreCreateContext(userHandle, &storeContextHandle);
    if (FAILED(hr))
    {
        printf("Failed creating store context: 0x%x\r\n", hr);
        return;
    }

    XTaskQueueRegistrationToken gameLicenseChangedToken = { 0 };
    hr = XStoreRegisterGameLicenseChanged(
        storeContextHandle,
        taskQueueHandle,
        storeContextHandle,
        GameLicenseChangedCallback,
        &gameLicenseChangedToken);

    if (FAILED(hr))
    {
        printf("Failed register for game license changed callback: 0x%x\r\n", hr);
        XStoreCloseContextHandle(storeContextHandle);
        return;
    }

    //Unregistering the license changed event and closing the XStoreContextHandle would usually go in the cleanup/shutdown sections of your game code. 
    XStoreUnregisterGameLicenseChanged(
        storeContextHandle,
        gameLicenseChangedToken,
        true);

    XStoreCloseContextHandle(storeContextHandle);
}

```

## Requisitos

**Encabezado:** XStore.h (incluido en XGameRuntime.h)

**Biblioteca:** xgameruntime.lib

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

## Documentación conceptual

* [Subprocesos sensibles al tiempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)
* [Operaciones básicas de la tienda](/publishing/xstore-commerce/xstore-basic-operations)

## Consulte también

[XStore](/reference/system/xstore/xstore_members)\
[XStoreCloseContextHandle](/reference/system/xstore/functions/xstoreclosecontexthandle)\
[XStoreRegisterGameLicenseChanged](/reference/system/xstore/functions/xstoreregistergamelicensechanged)


## Related topics

- [XStoreCloseContextHandle](/es/reference/system/xstore/functions/xstoreclosecontexthandle.md)
- [XStoreQueryGameLicenseAsync](/es/reference/system/xstore/functions/xstorequerygamelicenseasync.md)
- [XStoreQueryConsumableBalanceRemainingAsync](/es/reference/system/xstore/functions/xstorequeryconsumablebalanceremainingasync.md)
- [XStoreUnregisterGameLicenseChanged](/es/reference/system/xstore/functions/xstoreunregistergamelicensechanged.md)
- [XStoreCanAcquireLicenseForStoreIdAsync](/es/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidasync.md)
