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

# XSAPI C를 통한 사용자 Presence 업데이트

> XblPresenceSetPresenceAsync를 사용하여 XBOX Live 사용자의 온라인 Presence 상태를 업데이트하고 현재 게임 내 활동을 알리는 Flat C 샘플입니다.

이 항목에서는 사용자의 온라인 Presence 상태를 설정하기 위한 예제 코드를 제공합니다. XBOX services Rich Presence는 다른 플레이어에게 플레이어의 현재 활동을 알리는 기능을 제공합니다.

자세한 내용은 [Rich Presence 개요](/services/xbox-services/community/presence/live-presence-overview)를 참조하세요.

## 사용자의 온라인 Presence 상태 업데이트

이 예제 코드는 사용자의 온라인 Presence 상태를 설정합니다.

#### Flat C API

```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 }; // Take over ownership of XAsyncBlock*.
    HRESULT hr = XAsyncGetStatus(asyncBlock, false);
};

HRESULT hr = XblPresenceSetPresenceAsync(xboxLiveContext, true, nullptr, asyncBlock.get());
if (SUCCEEDED(hr))
{
    // The call succeeded, so release the std::unique_ptr ownership of XAsyncBlock* because the callback will take over ownership.
    // If the call fails, std::unique_ptr will keep ownership and delete XAsyncBlock*.
    asyncBlock.release();
}
```

자세한 내용은 다음을 참조하세요.

* [XAsyncBlock](/reference/system/xasync/structs/xasyncblock)
* [XAsyncGetStatus](/reference/system/xasync/functions/xasyncgetstatus)
* [XblPresenceSetPresenceAsync](/reference/live/xsapi-c/presence_c/functions/xblpresencesetpresenceasync)

## Rich Presence 상태 업데이트

#### Flat C API

```cpp theme={null}
XblPresenceRichPresenceIds ids{};
pal::strcpy(ids.scid, sizeof(ids.scid), scid);
ids.presenceId = "playingMap";
std::vector<const char*> tokenIds{ "CurrentMap" };
ids.presenceTokenIds = tokenIds.data();
ids.presenceTokenIdsCount = tokenIds.size();

HRESULT hr = XblPresenceSetPresenceAsync(xboxLiveContext, true, &ids, asyncBlock.get());
```

자세한 내용은 다음을 참조하세요.

* [XblPresenceRichPresenceIds](/reference/live/xsapi-c/presence_c/structs/xblpresencerichpresenceids)
* [XblPresenceSetPresenceAsync](/reference/live/xsapi-c/presence_c/functions/xblpresencesetpresenceasync)


## Related topics

- [Rich Presence 예제 코드](/ko/services/xbox-services/community/presence/how-to/live-presence-howto-nav.md)
- [REST를 통한 사용자 Presence 업데이트](/ko/services/xbox-services/community/presence/how-to/live-updating-presence-rest.md)
- [제품 변경 및 콘텐츠 업데이트](/ko/publishing/game-publishing/publishing-processes/managed-creators/publishing-processes-post-release-lifecycle.md)
- [MSIXVC2를 사용한 콘텐츠 업데이트](/ko/build/core-features/common/packaging/packaging-updates-msixvc2.md)
- [Multiplayer Session Directory 개요](/ko/services/xbox-services/multiplayer/mpsd/live-mpsd-overview.md)
