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

# chat_manager::start_processing_state_changes

> chat_manager::start_processing_state_changes

# chat\_manager::start\_processing\_state\_changes

检索自上次调用以来所有要处理的 Game Chat 状态更改的数组。

## 语法

```cpp theme={null}
void start_processing_state_changes(  
    uint32_t* stateChangeCount,  
    game_chat_state_change_array* stateChanges  
)  
```

### 参数

*stateChangeCount*   \_Out\_<br />类型：uint32\_t\*

用于写入应用要在 *stateChanges* 数组中处理的 game\_chat\_state\_change 条目数量的位置。

*stateChanges*   \_Outptr\_result\_buffer\_(\*stateChangeCount)<br />类型：game\_chat\_state\_change\_array\*

用于存储指向所有 game\_chat\_state\_change 条目数组的指针的位置，应用需要处理这些条目并将它们传递给 chat\_manager::finish\_processing\_state\_changes()。

### 返回值

类型：void

## 备注

此方法提供自上次调用此方法以来当前可供应用使用的所有更改的列表。应用应使用提供的 0 个或多个更改的数组来更新其自身的状态或 UI，然后及时使用它们调用 chat\_manager::finish\_processing\_state\_changes()。

如果在没有对前一次调用返回的状态更改对象列表调用 chat\_manager::finish\_processing\_state\_changes() 的情况下再次调用 chat\_manager::start\_processing\_state\_changes()，此方法将引发异常。即使返回了 0 个状态更改条目，也必须始终使用 chat\_manager::start\_processing\_state\_changes() 返回的值调用 chat\_manager::finish\_processing\_state\_changes()。

一旦调用了 chat\_manager::start\_processing\_state\_changes()，在相应的 chat\_manager::finish\_processing\_state\_changes() 调用之前，不得调用 chat\_manager::remove\_user()。在处理状态更改期间调用 chat\_manager::remove\_user() 会使已移除用户关联的内存无效，即使状态更改中返回了指向该用户关联内存的指针也是如此。

## 要求

**头文件：** GameChat2.h

**支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## 另请参阅

[chat\_manager](/reference/chat/gamechat2/classes/chat_manager/chat_manager)<br />[game\_chat\_state\_change](/reference/chat/gamechat2/structs/game_chat_state_change)<br />[game\_chat\_state\_change\_array](/reference/chat/gamechat2/structs/game_chat_state_change)<br />[chat\_manager::finish\_processing\_state\_changes](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_finish_processing_state_changes)<br />[chat\_manager::remove\_user](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_remove_user)


## Related topics

- [chat_manager::finish_processing_state_changes](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_finish_processing_state_changes.md)
- [chat_manager::remove_user](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_remove_user.md)
- [game_chat_state_change](/zh-CN/reference/chat/gamechat2/structs/game_chat_state_change.md)
- [game_chat_state_change_type](/zh-CN/reference/chat/gamechat2/enums/game_chat_state_change_type.md)
- [使用 Game Chat 2 C++ API](/zh-CN/services/xbox-services/multiplayer/chat/game-chat2/using-game-chat-2.md)
