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

# XStoreCanAcquireLicenseForStoreIdAsync

> XStoreCanAcquireLicenseForStoreIdAsync

# XStoreCanAcquireLicenseForStoreIdAsync

Récupère une licence d'aperçu pour du contenu pouvant faire l'objet d'une licence, notamment les durables avec ou sans package, ainsi que le contenu d'un disque actuellement inséré.
Cette API permet au jeu de savoir si une licence peut être obtenue pour le produit, sans réellement acquérir la licence.

## Syntaxe

```cpp theme={null}
HRESULT XStoreCanAcquireLicenseForStoreIdAsync(  
         const XStoreContextHandle storeContextHandle,  
         const char* storeProductId,  
         XAsyncBlock* async  
)  
```

### Paramètres

*storeContextHandle*   \_In\_\
Type : XStoreContextHandle

Handle de contexte du Store pour l'utilisateur, retourné par [XStoreCreateContext](/fr/reference/system/xstore/functions/xstorecreatecontext).

*storeProductId*   \_In\_z\_\
Type : char\*

StoreID du produit à vérifier

*async*   \_Inout\_\
Type : [XAsyncBlock\*](/fr/reference/system/xasync/structs/xasyncblock)

[XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock) définissant le travail asynchrone en cours.
[XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock) peut être utilisé pour interroger l'état de l'appel et récupérer ses résultats.
Pour plus d'informations, consultez [XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock).

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

## Remarques

**XStoreCanAcquireLicenseForStoreIdAsync** permet à un jeu de déterminer si l'utilisateur pourrait acquérir une licence pour un contenu particulier, sans réellement acquérir cette licence ni utiliser l'emplacement de simultanéité de cet utilisateur.
Cette fonction n'a pas besoin d'être utilisée pour le jeu en cours d'exécution, puisqu'il dispose déjà d'une licence, mais elle permet de déterminer si l'utilisateur possède d'autres jeux ou contenus du même éditeur.
Par exemple, un jeu peut utiliser cette API pour déterminer s'il doit récompenser les utilisateurs qui possèdent des versions antérieures du jeu (en version numérique ou sur un disque inséré) ou pour proposer des ventes incitatives de produits à l'utilisateur.

Pour récupérer la licence d'aperçu et le résultat de l'exécution de cette fonction, appelez [XStoreCanAcquireLicenseForStoreIdResult](/fr/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidresult) après avoir appelé cette fonction.

Cet extrait de code montre un exemple d'utilisation des API suivantes :

* **XStoreCanAcquireLicenseForStoreIdAsync**
* [XStoreCanAcquireLicenseForStoreIdResult](/fr/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidresult)

```cpp theme={null}
void CALLBACK CanAcquireLicenseForStoreIdCallback(XAsyncBlock* asyncBlock)
{
    XStoreCanAcquireLicenseResult canAcquireLicenseResult{};

    HRESULT hr = XStoreCanAcquireLicenseForStoreIdResult(
        asyncBlock,
        &canAcquireLicenseResult);

    if (FAILED(hr))
    {
        printf("Failed retrieve the license result: 0x%x\r\n", hr);
        return;
    }

    printf("status       : %d\r\n", canAcquireLicenseResult.status);
    printf("licensableSku: %s\r\n", canAcquireLicenseResult.licensableSku);
}

void CanAcquireLicenseForStoreId(XStoreContextHandle storeContextHandle, XTaskQueueHandle taskQueueHandle, const char* storeId)
{
    auto asyncBlock = std::make_unique<XAsyncBlock>();
    ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
    asyncBlock->queue = taskQueueHandle;
    asyncBlock->callback = CanAcquireLicenseForStoreIdCallback;

    HRESULT hr = XStoreCanAcquireLicenseForStoreIdAsync(
        storeContextHandle,
        storeId,
        asyncBlock.get());

    if (FAILED(hr))
    {
        printf("Failed to get preview license for store ID: 0x%x\r\n", hr);
        return;
    }
}
```

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

* [Accorder aux joueurs l'accès au contenu des modules complémentaires](/fr/publishing/xstore-commerce/xstore-granting-access)
* [Gérer et accorder des licences pour le contenu téléchargeable (DLC)](/fr/publishing/xstore-commerce/xstore-dlc)
* [Activation des tests de licence](/fr/publishing/xstore-commerce/xstore-licensing-setup)

## Voir aussi

[XStore](/fr/reference/system/xstore/xstore_members)\
[XStoreCanAcquireLicenseForStoreIdResult](/fr/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidresult)\
[Utilisation d'un bien durable sans package](/fr/publishing/xstore-commerce/xstore-dwob)\
[Accorder aux joueurs l'accès au contenu des modules complémentaires](/fr/publishing/xstore-commerce/xstore-granting-access)


## Related topics

- [XStoreCanAcquireLicenseForStoreIdAsync](/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidasync.md)
- [XStoreCanAcquireLicenseForStoreIdResult](/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidresult.md)
