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

# XPackageRegisterPackageInstalled

> XPackageRegisterPackageInstalled

# XPackageRegisterPackageInstalled

설치가 완료될 때 호출할 콜백을 등록합니다.

## 구문

```cpp theme={null}
HRESULT XPackageRegisterPackageInstalled(  
         XTaskQueueHandle queue,  
         void* context,  
         XPackageInstalledCallback* callback,  
         XTaskQueueRegistrationToken* token  
)  
```

### 매개 변수

*queue*   \_In\_\
형식: XTaskQueueHandle

콜백을 실행할 비동기 큐입니다.

*context*   \_In\_opt\_\
형식: void\*

콜백에 전달할 컨텍스트입니다.

*callback*   \_In\_\
형식: XPackageInstalledCallback\*

설치가 완료될 때 호출할 사용자 정의 콜백입니다.

*token*   \_Out\_\
형식: [XTaskQueueRegistrationToken\*](/reference/system/xtaskqueue/structs/xtaskqueueregistrationtoken)

반환 시 [XPackageUnregisterPackageInstalled](/reference/system/xpackage/functions/xpackageunregisterpackageinstalled)로 콜백을 등록 취소하는 데 사용할 수 있는 콜백을 식별하는 토큰을 포함합니다.

### 반환 값

형식: HRESULT

HRESULT 성공 또는 오류 코드입니다.

## 설명

PackageInstalled 알림을 사용하면 새 패키지가 완전히 설치되는 시점을 확인할 수 있습니다.

[XPackageEnumeratePackages](/reference/system/xpackage/functions/xpackageenumeratepackages) API와 [XPackageRegisterPackageInstalled](/reference/system/xpackage/functions/xpackageregisterpackageinstalled) API 모두 **XPackageDetails** 구조체를 통해 설치에 대한 세부 정보를 제공합니다. 패키지가 설치 중인 경우 **installing** 속성이 true로 설정되며, 설치 모니터를 만들어 패키지 식별자로 설치 진행률을 모니터링할 수 있습니다.

일반적인 설치 큐 알림은 없으며, 진행 중인 항목을 표시하고 추적하려면 [XPackageEnumeratePackages](/reference/system/xpackage/functions/xpackageenumeratepackages)를 사용하고, 새 DLC의 존재를 알리려면 **PackageInstalled**를 사용하는 것이 좋습니다. 또한 설치를 중지, 시작 또는 취소하는 API도 없습니다. 게임의 관점에서는 설치가 자체적으로 처리되어야 합니다. 오류는 자동으로 재시도되며 게임에는 표시되지 않습니다.

다음 예제에서 **XPackageRegisterPackageInstalled**는 새 DLC 패키지가 설치될 때 메시지를 출력하는 데 사용됩니다.

```cpp theme={null}
void CALLBACK NewPackageAdded(void* /* context */, const XPackageDetails* details)
{
    if (details->kind == XPackageKind::Content)
    {
        printf("Package added: %s\n", details->displayName);
    }
}

HRESULT ListenForNewDlc(XTaskQueueHandle queue, XTaskQueueRegistrationToken* token)
{
    HRESULT hr = XPackageRegisterPackageInstalled(queue, nullptr, NewPackageAdded, token);
    return hr;
}

void StopListeningForDlc(XTaskQueueRegistrationToken token)
{
    XPackageUnregisterPackageInstalled(token, false);
}
```

## 요구 사항

**헤더:** XPackage.h

**라이브러리:** xgameruntime.lib

**지원 플랫폼:** Windows, XBOX One 제품군 콘솔 및 XBOX Series 콘솔

## 개념 문서

* [스트리밍 설치: 상태](/build/core-features/common/packaging/packaging-installstatus)

## 함께 보기

[XPackage](/reference/system/xpackage/xpackage_members)


## Related topics

- [XPackageUnregisterPackageInstalled](/ko/reference/system/xpackage/functions/xpackageunregisterpackageinstalled.md)
- [XPackageInstalledCallback](/ko/reference/system/xpackage/functions/xpackageinstalledcallback.md)
- [XPackageEnumerationCallback](/ko/reference/system/xpackage/functions/xpackageenumerationcallback.md)
- [스트리밍 설치: 상태](/ko/build/core-features/common/packaging/packaging-installstatus.md)
- [XPackage](/ko/reference/system/xpackage/xpackage_members.md)
