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

# XStoreShowGiftingUIAsync

> XStoreShowGiftingUIAsync

# XStoreShowGiftingUIAsync

Inicia la superposición de interfaz de usuario para comprar el producto especificado como regalo para otro usuario. Se pedirá al usuario actual que escriba información sobre el destinatario del regalo y se le guiará a través del flujo de compra.

## Sintaxis

```cpp theme={null}
HRESULT XStoreShowGiftingUIAsync(  
         const XStoreContextHandle storeContextHandle,  
         const char* storeId,  
         const char* name,  
         const char* extendedJsonData,  
         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).

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

Identificador del producto que se comprará como regalo. **Nota**: este producto debe estar configurado para admitir compras de regalos.

*name*   \_In\_opt\_z\_\
Tipo: char\*

Nombre del producto que se comprará como regalo.

*extendedJsonData*   \_In\_opt\_z\_\
Tipo: char\*

Un blob JSON que se pasa al flujo de compra de regalo. Permite insertar identificadores de campaña personalizados, para que pueda hacer un seguimiento de cómo se inició la compra.

*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. Consulte [XAsyncBlock](/reference/system/xasync/structs/xasyncblock) para obtener más información.

### Valor devuelto

Tipo: HRESULT

Código HRESULT de éxito o de error.

## Comentarios

El producto que se comprará como regalo debe estar configurado para admitir compras de regalos. Para recuperar la lista de productos que admiten regalos, llame a [XStoreQueryProductsAsync](/reference/system/xstore/functions/xstorequeryproductsasync) con el parámetro `actionFilters` establecido en `"Gift"`.

Para recuperar el resultado de esta función, llame a [XStoreShowGiftingUIResult](/reference/system/xstore/functions/xstoreshowgiftinguiresult) después de llamar a esta función. Solo se debe llamar a esta función cuando el usuario haya elegido comprar algo como regalo, y hará que el sistema presente un cuadro de diálogo de compra modal que controla la información de pago y la confirmación del usuario fuera del proceso.

El siguiente fragmento de código muestra un ejemplo de solicitud de una compra de regalo para un producto concreto de la tienda.

```cpp theme={null}
void CALLBACK ShowGiftingUICallback(XAsyncBlock* asyncBlock)
{
    HRESULT hr = XStoreShowGiftingUIResult(asyncBlock);

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

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

    HRESULT hr = XStoreShowGiftingUIAsync(
        storeContextHandle,
        storeId,
        nullptr,    // Can be used to override the title bar text
        nullptr,    // Can be used to provide extra details to purchase
        asyncBlock.get());

    if (FAILED(hr))
    {
        printf("Failed to purchase: 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

## Consulte también

[XStore](/reference/system/xstore/xstore_members)\
[XStoreShowGiftingUIResult](/reference/system/xstore/functions/xstoreshowgiftinguiresult)


## Related topics

- [XStoreShowGiftingUIResult](/es/reference/system/xstore/functions/xstoreshowgiftinguiresult.md)
- [XStore](/es/reference/system/xstore/xstore_members.md)
- [XStoreShowPurchaseUIAsync](/es/reference/system/xstore/functions/xstoreshowpurchaseuiasync.md)
- [XStoreShowRedeemTokenUIAsync](/es/reference/system/xstore/functions/xstoreshowredeemtokenuiasync.md)
- [XStoreShowAssociatedProductsUIAsync](/es/reference/system/xstore/functions/xstoreshowassociatedproductsuiasync.md)
