> ## 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 magasin pour l'utilisateur spécifié.

## Syntaxe

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

### Paramètres

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

L'utilisateur pour lequel créer le contexte de magasin.\
Ce paramètre est facultatif pour les jeux sur PC seulement : il suffit de passer 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 magasin 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 de façon sécuritaire, nous recommandons de fermer le XStoreContextHandle et de le recréer chaque fois que le jeu reprend après un état suspendu.

<Note>Cette fonction ne peut pas être appelée de façon sécuritaire 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-CA/reference/system/xstore/functions/xstoreclosecontexthandle). Si vous ne fermez pas le handle, une fuite de mémoire se produira. Le contexte de magasin sert à identifier l'utilisateur pour lequel récupérer des informations dans plusieurs appels de l'API **XStore**. L'extrait de code suivant montre un exemple de création d'un contexte de magasin.

```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 magasin](/fr-CA/publishing/xstore-commerce/xstore-basic-operations)

## Voir aussi

[XStore](/fr-CA/reference/system/xstore/xstore_members)\
[XStoreCloseContextHandle](/fr-CA/reference/system/xstore/functions/xstoreclosecontexthandle)\
[XStoreRegisterGameLicenseChanged](/fr-CA/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)
