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

Crée un contexte de Store pour l'utilisateur spécifié.

## Syntaxe

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

### Paramètres

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

Utilisateur pour lequel créer le contexte de Store.\
Ce paramètre est facultatif pour les jeux PC uniquement : passez simplement une valeur nullptr. Sur PC, l'utilisateur connecté au Microsoft Store est utilisé automatiquement et ce paramètre est ignoré.
Un XUser valide est requis pour les jeux sur console.

*storeContextHandle*   \_Out\_\
Type : XStoreContextHandle\*

En cas de réussite, contient le contexte de Store créé.

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

## Remarques

**REMARQUE :** Sur les consoles, le XStoreContextHandle créé par cette fonction est invalidé après un événement de suspension ou de Quick Resume. Pour gérer ces situations en toute sécurité, nous vous recommandons de fermer le XStoreContextHandle et de le recréer chaque fois que le jeu reprend après un état suspendu.

<Note>Cette fonction n'est pas sûre à appeler sur un thread à contrainte de temps. Pour plus d'informations, consultez [Threads à contrainte de temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Lorsque vous avez terminé d'utiliser le **XStoreContextHandle** créé par cette fonction, vous devez le fermer avec [XStoreCloseContextHandle](/fr/reference/system/xstore/functions/xstoreclosecontexthandle). Si vous ne fermez pas le handle, une fuite de mémoire se produit. Le contexte de Store sert à identifier l'utilisateur pour lequel récupérer des informations dans un certain nombre d'appels d'API **XStore**. L'extrait de code suivant montre un exemple de création d'un contexte de Store.

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

```

## Configuration requise

**En-tête :** XStore.h (inclus dans XGameRuntime.h)

**Bibliothèque :** xgameruntime.lib

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

## Documentation conceptuelle

* [Threads à contrainte de temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)
* [Opérations de base du Store](/fr/publishing/xstore-commerce/xstore-basic-operations)

## Voir aussi

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


## Related topics

- [XStoreCreateContext](/zh-CN/reference/system/xstore/functions/xstorecreatecontext.md)
- [XStoreCloseContextHandle](/reference/system/xstore/functions/xstoreclosecontexthandle.md)
- [Basic store operations](/publishing/xstore-commerce/xstore-basic-operations.md)
- [XStoreQueryGameLicenseAsync](/reference/system/xstore/functions/xstorequerygamelicenseasync.md)
- [XStoreQueryConsumableBalanceRemainingAsync](/reference/system/xstore/functions/xstorequeryconsumablebalanceremainingasync.md)
