> ## 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, y compris les durables avec ou sans package, et le contenu d'un disque actuellement inséré.
Cette API permet au jeu de vérifier si une licence peut être accordée 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

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

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

StoreID du produit à vérifier

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

Un [XAsyncBlock](/fr-CA/reference/system/xasync/structs/xasyncblock) qui définit le travail asynchrone en cours.
Le [XAsyncBlock](/fr-CA/reference/system/xasync/structs/xasyncblock) peut être utilisé pour interroger l'état de l'appel et récupérer les résultats de l'appel.
Pour plus d'informations, consultez [XAsyncBlock](/fr-CA/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 possède déjà 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 produits supplémentaires à 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-CA/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-CA/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 de modules complémentaires](/fr-CA/publishing/xstore-commerce/xstore-granting-access)
* [Gérer le contenu téléchargeable (DLC) et ses licences](/fr-CA/publishing/xstore-commerce/xstore-dlc)
* [Activation des tests de licence](/fr-CA/publishing/xstore-commerce/xstore-licensing-setup)

## Voir aussi

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


## Related topics

- [XStoreCanAcquireLicenseForStoreIdAsync](/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidasync.md)
- [XStoreCanAcquireLicenseForStoreIdResult](/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidresult.md)
- [XStoreCanAcquireLicenseResult](/reference/system/xstore/structs/xstorecanacquirelicenseresult.md)
- [XStoreCanLicenseStatus](/ja-jp/reference/system/xstore/enums/xstorecanlicensestatus.md)
