> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtendo metadados de blobs do Title Storage

> Exemplo de código C simples para recuperar metadados de blobs do Title Storage do XBOX com XblTitleStorageGetBlobMetadataAsync, incluindo a paginação por identificadores de resultado.

Este tópico demonstra como recuperar metadados de blobs do Title Storage do XBOX usando os exemplos de código C simples a seguir.

#### C simples

```cpp theme={null}
auto asyncBlock = std::make_unique<XAsyncBlock>();
asyncBlock->queue = queue;
asyncBlock->context = nullptr;
asyncBlock->callback = [](XAsyncBlock* asyncBlock)
{
    std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock };
    XblTitleStorageBlobMetadataResultHandle handle;
    HRESULT hr = XblTitleStorageGetBlobMetadataResult(asyncBlock, &handle);

    if (SUCCEEDED(hr))
    {
        if (blobMetadataResultHandle != nullptr)
        {
            XblTitleStorageBlobMetadataResultCloseHandle(blobMetadataResultHandle);
        }

        blobMetadataResultHandle = handle;
    }

};

HRESULT hr = XblTitleStorageGetBlobMetadataAsync(
    xboxLiveContext,
    scid,
    storageType,
    blobPath.c_str(),
    xboxUserId,
    skipItems,
    maxItems,
    asyncBlock.get()
);

if (SUCCEEDED(hr))
{
    asyncBlock.release();
}
```

## Existe somente uma página de objetos XblTitleStorageBlobMetadata

O exemplo de código a seguir demonstra como usar `XblTitleStorageBlobMetadataResultHandle` para recuperar a primeira página da lista de objetos [XblTitleStorageBlobMetadata](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/structs/xbltitlestorageblobmetadata.md).
\[!NOTE] Dependendo do número de blobs que o título tem no Title Storage, pode haver várias páginas de `XblTitleStorageBlobMetadata`.

#### C simples

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;

const XblTitleStorageBlobMetadata* items;
size_t itemsSize;

HRESULT hr = XblTitleStorageBlobMetadataResultGetItems(handle, &items, &itemsSize);
```

## Determinar se existem mais páginas de objetos XblTitleStorageBlobMetadata

O exemplo de código a seguir demonstra como verificar se há mais páginas de `XblTitleStorageBlobMetadata` a serem recuperadas do Title Storage.

#### C simples

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;

bool hasNext;

HRESULT hr = XblTitleStorageBlobMetadataResultHasNext(handle, &hasNext);
```

## Recuperar mais páginas de objetos XblTitleStorageBlobMetadata

O exemplo de código a seguir demonstra como recuperar a próxima página de objetos `XblTitleStorageBlobMetadata`.

#### C simples

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;

auto asyncBlock = std::make_unique<XAsyncBlock>();
asyncBlock->queue = queue;
asyncBlock->context = nullptr;
asyncBlock->callback = [](XAsyncBlock* asyncBlock)
{
    std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock };
    XblTitleStorageBlobMetadataResultHandle handle{ nullptr };
    
    HRESULT hr = XblTitleStorageBlobMetadataResultGetNextResult(asyncBlock, &handle);
};

HRESULT hr = XblTitleStorageBlobMetadataResultGetNextAsync(handle, maxItems, asyncBlock.get());

if (SUCCEEDED(hr))
{
    asyncBlock.release();
}
```

## Duplicar XblTitleStorageBlobMetadataResultHandle

O exemplo de código a seguir demonstra como criar uma duplicata de `XblTitleStorageBlobMetadataResultHandle`.

#### C simples

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;
XblTitleStorageBlobMetadataResultHandle duplicatedHandle;

HRESULT hr = XblTitleStorageBlobMetadataResultDuplicateHandle(handle, &duplicatedHandle);
```

## Fechar XblTitleStorageBlobMetadataResultHandle

O exemplo de código a seguir demonstra como fechar `XblTitleStorageBlobMetadataResultHandle`.

> [!NOTE]
>
> Você deve fechar esse identificador quando terminar de usá-lo.

#### C simples

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;
XblTitleStorageBlobMetadataResultCloseHandle(handle);
blobMetadataResultHandle = nullptr;
```

## Veja também

[XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md)

[XblTitleStorageBlobMetadataResultCloseHandle](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultclosehandle.md)

[XblTitleStorageGetBlobMetadataAsync](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/functions/xbltitlestoragegetblobmetadataasync.md)

[XblTitleStorageGetBlobMetadataResult](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/functions/xbltitlestoragegetblobmetadataresult.md)

[XblTitleStorageBlobMetadata](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/structs/xbltitlestorageblobmetadata.md)

[XblTitleStorageBlobMetadataResultGetItems](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultgetitems.md)

[XblTitleStorageBlobMetadataResultHasNext](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresulthasnext.md)

[XblTitleStorageBlobMetadataResultGetNextAsync](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultgetnextasync.md)

[XblTitleStorageBlobMetadataResultGetNextResult](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultgetnextresult.md)

[XblTitleStorageBlobMetadataResultDuplicateHandle](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultduplicatehandle.md)


## Related topics

- [Baixando um blob do Title Storage](https://docs.xbox.com/pt-BR/services/xbox-services/storage/title-storage/how-to/live-downloading-title-storage-blob.md)
- [Código de exemplo do Title Storage](https://docs.xbox.com/pt-BR/services/xbox-services/storage/title-storage/how-to/live-title-storage-howto-nav.md)
- [Excluindo um blob do Title Storage](https://docs.xbox.com/pt-BR/services/xbox-services/storage/title-storage/how-to/live-deleting-title-storage-blob.md)
- [Carregando um blob no Title Storage](https://docs.xbox.com/pt-BR/services/xbox-services/storage/title-storage/how-to/live-uploading-title-storage-blob.md)
- [XblTitleStorageDownloadBlobAsync](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/title_storage_c/functions/xbltitlestoragedownloadblobasync.md)
