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

# Fonction RegisterLampArrayStatusCallback

> Inscrit un LampArrayStatusCallback déclenché lors des changements d'état d'un LampArray et détermine si l'énumération initiale des appareils est bloquante ou asynchrone.

# RegisterLampArrayStatusCallback

Inscrit une fonction de rappel à appeler chaque fois que l'état du LampArray change.

## Syntaxe

```cpp theme={null}
STDAPI RegisterLampArrayStatusCallback(
    _In_ LampArrayStatusCallback callbackFunc,
    LampArrayEnumerationKind enumerationKind,
    _In_opt_ void * context,
    _Out_ _Result_zeroonfailure_ LampArrayCallbackToken * callbackToken);
```

### Paramètres

*callbackFunc*   \_In\_
Type : [LampArrayStatusCallback](/fr-CA/reference/lighting/lamparray/functions/lamparraystatuscallback)

Fonction définie par l'appelant à inscrire. Elle sera appelée lorsque l'état du LampArray change.

*enumerationKind*\
Type : [LampArrayEnumerationKind](/fr-CA/reference/lighting/lamparray/enums/lamparrayenumerationkind)

Spécifie le comportement d'énumération des appareils souhaité pour la fonction [LampArrayStatusCallback](/fr-CA/reference/lighting/lamparray/functions/lamparraystatuscallback).

*context*   \_In\_opt\_\
Type : void\*

Pointeur vers un objet contenant les informations pertinentes pour la fonction de rappel. Il s'agit généralement de l'objet appelant.

*callbackToken*   \_Out\_ \_Result\_zeroonfailure\_
Type : LampArrayCallbackToken\*

Valeur de jeton qui peut être utilisée pour désinscrire la fonction de rappel ultérieurement.

### Valeur de retour

Type : HRESULT

Résultat de la fonction.

## Remarques

Le paramètre LampArrayEnumerationKind permet à l'appelant de préciser comment il doit recevoir les rappels pour les appareils LampArray connectés au moment de cet appel. Si [LampArrayEnumerationKind::Blocking](/fr-CA/reference/lighting/lamparray/enums/lamparrayenumerationkind) est sélectionné, la fonction [RegisterLampArrayStatusCallback](/fr-CA/reference/lighting/lamparray/functions/registerlamparraystatuscallback) bloque jusqu'à ce que ce rappel soit appelé pour chaque appareil connecté (ce qui signifie que le rappel sera appelé sur le thread appelant).

Lorsque le premier rappel est inscrit, l'API LampArray démarre un thread de travail pour gérer les notifications d'état des appareils ILampArray. Ces événements sont peu fréquents, et le thread de travail reste autrement en état d'attente. Une fois l'appel d'inscription retourné, tous les LampArrayStatusCallbacks subséquents sont appelés séquentiellement sur ce thread de travail.

Si [LampArrayEnumerationKind::Async](/fr-CA/reference/lighting/lamparray/enums/lamparrayenumerationkind) est spécifié, cet appel retourne immédiatement, et les LampArrays connectés au moment de l'appel sont énumérés sur le thread de travail des rappels LampArray mentionné précédemment.

Le code suivant est un exemple d'inscription et de désinscription d'une fonction [LampArrayStatusCallback](/fr-CA/reference/lighting/lamparray/functions/lamparraystatuscallback) :

```c++ theme={null}
void MyLampArrayStatusCallback(
    _In_opt_ void* context,
    LampArrayStatus currentStatus,
    LampArrayStatus previousStatus,
    _In_ ILampArray* lampArray)
{
    // Application-specific code to handle LampArray status changes
}

void MonitorLampArrays(
    _In_ volatile bool & cancelMonitoring) noexcept
{
    LampArrayCallbackToken token = LAMPARRAY_INVALID_CALLBACK_TOKEN_VALUE;
    if (SUCCEEDED(RegisterLampArrayStatusCallback(
        MyLampArrayStatusCallback,
        LampArrayEnumerationKind::Async,
        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)\
[LampArrayStatusCallback](/fr-CA/reference/lighting/lamparray/functions/lamparraystatuscallback)\
[UnregisterLampArrayCallback](/fr-CA/reference/lighting/lamparray/functions/unregisterlamparraycallback)\
[LampArrayEnumerationKind](/fr-CA/reference/lighting/lamparray/enums/lamparrayenumerationkind)


## Related topics

- [RegisterLampArrayStatusCallback](/ko/reference/lighting/lamparray/functions/registerlamparraystatuscallback.md)
- [RegisterLampArrayStatusCallback function](/reference/lighting/lamparray/functions/registerlamparraystatuscallback.md)
- [Función RegisterLampArrayStatusCallback](/es/reference/lighting/lamparray/functions/registerlamparraystatuscallback.md)
- [LampArrayStatusCallback](/ko/reference/lighting/lamparray/functions/lamparraystatuscallback.md)
- [LampArrayStatusCallback function reference](/reference/lighting/lamparray/functions/lamparraystatuscallback.md)
