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

# RegisterLampArrayCallback

> RegisterLampArrayCallback

# RegisterLampArrayCallback

LampArray がシステムに接続または切断されるたびに呼び出されるコールバック関数を登録します。

## 構文

```cpp theme={null}
HRESULT RegisterLampArrayCallback(
    LampArrayCallback lampArrayCallback,
    void* context,
    LampArrayCallbackToken* callbackToken);
```

### パラメーター

*lampArrayCallback*   \_In\_
Type: [LampArrayCallback](/reference/lighting/lamparray/functions/lamparraycallback)

登録する呼び出し元定義の関数です。LampArray がシステムに接続または切断されると呼び出されます。

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

コールバック関数に関連する情報を含むオブジェクトへのポインター。通常は呼び出し元オブジェクトです。

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

後でコールバック関数の登録を解除するために使用できるトークン値です。

### 戻り値

Type: HRESULT

関数の結果です。

## 解説

コールバックが登録された時点で LampArray デバイスが接続されている場合、RegisterLampArrayCallback 関数は、接続されている各デバイスに対してコールバックが呼び出されるまでブロックします (つまり、コールバックは呼び出し元のスレッドで呼び出されます)。

最初のコールバックが登録されると、LampArray API はワーカー スレッドを起動して、ILampArray デバイスの接続と取り外しの通知を処理します。これらのイベントは頻繁ではなく、ワーカー スレッドはそれ以外のときは待機状態のままです。登録呼び出しが返された後、後続のすべての LampArrayCallbacks はこのワーカー スレッド上で順次呼び出されます。

次のコードは、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);
    }
}
```

## 要件

**ヘッダー:** LampArray.h

**ライブラリ:** xgameplatform.lib

**サポートされているプラットフォーム:** XBOX One ファミリ本体および XBOX Series 本体

## 関連項目

[Lighting API の概要](/build/core-features/common/lighting/gc-lighting-toc)\
[Lighting の基礎](/build/core-features/common/lighting/lighting-basics)\
[LampArrayCallback](/reference/lighting/lamparray/functions/lamparraycallback)\
[UnregisterLampArrayCallback](/reference/lighting/lamparray/functions/unregisterlamparraycallback)


## Related topics

- [LampArrayCallback](/ja-jp/reference/lighting/lamparray/functions/lamparraycallback.md)
- [LampArray](/ja-jp/reference/lighting/lamparray/lamparray_members.md)
- [UnregisterLampArrayCallback](/ja-jp/reference/lighting/lamparray/functions/unregisterlamparraycallback.md)
- [RegisterLampArrayStatusCallback](/ja-jp/reference/lighting/lamparray/functions/registerlamparraystatuscallback.md)
- [LampArrayStatusCallback](/ja-jp/reference/lighting/lamparray/functions/lamparraystatuscallback.md)
