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

Recupera una licencia de vista previa para contenido con licencia, incluidos los duraderos con o sin paquetes y el contenido de un disco insertado actualmente.
Esta API permite que el juego compruebe si se puede conceder una licencia para el producto, pero sin adquirir realmente la licencia.

## Sintaxis

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

### Parámetros

*storeContextHandle*   \_In\_\
Tipo: XStoreContextHandle

El identificador de contexto de la tienda para el usuario, devuelto por [XStoreCreateContext](/reference/system/xstore/functions/xstorecreatecontext).

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

StoreID del producto que se va a comprobar

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

Un [XAsyncBlock](/reference/system/xasync/structs/xasyncblock) que define el trabajo asincrónico que se está realizando.
El [XAsyncBlock](/reference/system/xasync/structs/xasyncblock) se puede usar para sondear el estado de la llamada y recuperar los resultados de la llamada.
Para obtener más información, consulte [XAsyncBlock](/reference/system/xasync/structs/xasyncblock).

### Valor devuelto

Tipo: HRESULT

HRESULT de éxito o código de error.

## Comentarios

**XStoreCanAcquireLicenseForStoreIdAsync** ofrece al juego la capacidad de determinar si el usuario podría adquirir una licencia para un contenido concreto sin adquirir realmente esa licencia y sin consumir la ranura de simultaneidad de ese usuario.
No es necesario usar esta función para el juego que se está ejecutando actualmente, ya que este ya tiene una licencia, pero puede determinar si el usuario posee otros juegos o contenido del mismo publicador.
Por ejemplo, un juego puede usar esta API para determinar si debe recompensar a los usuarios que poseen versiones anteriores del juego (ya sea digitalmente o desde un disco insertado) o para ofrecer productos adicionales al usuario.

Para recuperar la licencia de vista previa y el resultado de la ejecución de esta función, llame a [XStoreCanAcquireLicenseForStoreIdResult](/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidresult) después de llamar a esta función.

Este fragmento de código muestra un ejemplo de uso de las siguientes API:

* **XStoreCanAcquireLicenseForStoreIdAsync**
* [XStoreCanAcquireLicenseForStoreIdResult](/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;
    }
}
```

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

* [Concesión a los jugadores de acceso a contenido de complementos](/publishing/xstore-commerce/xstore-granting-access)
* [Administración y concesión de licencias de contenido descargable (DLC)](/publishing/xstore-commerce/xstore-dlc)
* [Habilitación de las pruebas de licencias](/publishing/xstore-commerce/xstore-licensing-setup)

## Consulte también

[XStore](/reference/system/xstore/xstore_members)\
[XStoreCanAcquireLicenseForStoreIdResult](/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidresult)\
[Cómo usar un duradero sin paquete](/publishing/xstore-commerce/xstore-dwob)\
[Concesión a los jugadores de acceso a contenido de complementos](/publishing/xstore-commerce/xstore-granting-access)


## Related topics

- [XStoreCanAcquireLicenseForStoreIdResult](/es/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidresult.md)
- [XStoreCanAcquireLicenseResult](/es/reference/system/xstore/structs/xstorecanacquirelicenseresult.md)
- [XStoreCanLicenseStatus](/es/reference/system/xstore/enums/xstorecanlicensestatus.md)
- [XStore](/es/reference/system/xstore/xstore_members.md)
- [Habilitación de las pruebas de licencias](/es/publishing/xstore-commerce/xstore-licensing-setup.md)
