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

# Référence de la fonction UnregisterLampArrayCallback

> Désinscrit un LampArrayCallback inscrit précédemment à l'aide de son jeton de rappel et attend, jusqu'à un délai spécifié, la fin des rappels en cours.

# UnregisterLampArrayCallback

Désinscrit une fonction de rappel LampArray.

## Syntaxe

```cpp theme={null}
bool UnregisterLampArrayCallback(
    LampArrayCallbackToken callbackToken,
    uint64_t timeoutInMicroseconds);
```

### Paramètres

*callbackToken*\
Type : LampArrayCallbackToken

Jeton de la fonction de rappel à désinscrire. Généré lorsque la fonction a été initialement inscrite avec [RegisterLampArrayCallback](/fr-CA/reference/lighting/lamparray/functions/registerlamparraycallback).

*timeoutInMicroseconds*\
Type : uint64\_t

Durée d'attente de la fin d'un rappel afin qu'il puisse être désinscrit.

### Valeur de retour

Type : bool

True si le rappel a été désinscrit avec succès. False indique une valeur de jeton de rappel non valide ou l'expiration du délai d'attente d'un rappel en cours. Un retour false garantit tout de même qu'aucun nouveau rappel ne sera distribué. Les rappels déjà en cours seront tout de même exécutés.

## Remarques

Il n'est pas sécuritaire de libérer les ressources associées au rappel (par exemple, décharger la DLL qui héberge la fonction de rappel) tant que la fonction UnregisterLampArrayCallback n'a pas retourné avec succès. Par conséquent, il n'est pas possible de désinscrire un rappel à partir de sa propre fonction de rappel inscrite, et toute tentative en ce sens met fin au processus.

Le code suivant est un exemple d'inscription et de désinscription d'un rappel LampArray :

```cpp theme={null}
void MyLampArrayCallback(
    _In_opt_ void* context,
    bool isAttached,
    _In_ ILampArray* lampArray)
{
    if (isAttached)
    {
        // Application-specific code to handle LampArray connection
    }
    else
    {
        // Application-specific code to handle LampArray disconnection
    }
}

void MonitorLampArrays(
    _In_ volatile bool & cancelMonitoring) noexcept
{
    LampArrayCallbackToken token = LAMPARRAY_INVALID_CALLBACK_TOKEN_VALUE;
    if (SUCCEEDED(RegisterLampArrayCallback(
        MyLampArrayCallback,
        nullptr /* context */,
        &token)))
    {
        while (!cancelMonitoring)
        {
            Sleep(100);
        }

        UnregisterLampArrayCallback(token, 5000);
    }
}
```

## Configuration requise

**En-tête :** LampArray.h

**Bibliothèque :** xgameplatform.lib

**Plateformes prises en charge :** consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[Vue d'ensemble de l'API d'éclairage](/fr-CA/build/core-features/common/lighting/gc-lighting-toc)\
[Notions de base de l'éclairage](/fr-CA/build/core-features/common/lighting/lighting-basics)\
[LampArrayCallback](/fr-CA/reference/lighting/lamparray/functions/lamparraycallback)\
[RegisterLampArrayCallback](/fr-CA/reference/lighting/lamparray/functions/registerlamparraycallback)


## Related topics

- [Référence de la fonction LampArrayCallback](/fr-CA/reference/lighting/lamparray/functions/lamparraycallback.md)
- [Référence de la fonction LampArrayStatusCallback](/fr-CA/reference/lighting/lamparray/functions/lamparraystatuscallback.md)
- [Référence de la fonction RegisterLampArrayCallback](/fr-CA/reference/lighting/lamparray/functions/registerlamparraycallback.md)
- [Référence de la structure LampArrayPosition](/fr-CA/reference/lighting/lamparray/structs/lamparrayposition.md)
- [Référence de la structure LampArrayColor](/fr-CA/reference/lighting/lamparray/structs/lamparraycolor.md)
