> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IGameInputDevice::GetDisplayName

> 以 UTF-8 字符串形式获取输入设备的友好显示名称。

以 UTF-8 字符串形式获取输入设备的友好显示名称。

## 语法

```cpp theme={null}
uint32_t GetDisplayName(
    uint32_t bufferByteCount,
    char* buffer
);
```

### 参数

*bufferByteCount*   \_In\_\
类型：uint32\_t

*buffer* 所指向缓冲区的大小（以字节为单位）。传递 0 可查询所需的大小。

*buffer*   \_Out\_writes\_bytes\_opt\_(bufferByteCount)\
类型：char\*

接收以 null 结尾的 UTF-8 显示名称的缓冲区。传递 `nullptr` 可查询所需的大小。

### 返回值

类型：uint32\_t

容纳显示名称所需的缓冲区大小（以字节为单位），包括 null 终止符。

## 备注

仅当 *buffer* 不为 `nullptr` 且 *bufferByteCount* 大于或等于所需大小时，此方法才会将显示名称写入 *buffer*。否则，缓冲区不会被修改。若要检索显示名称，请先使用值为 0 的 *bufferByteCount* 和值为 `nullptr` 的 *buffer* 调用一次此方法以获取所需大小，分配该大小的缓冲区，然后再次调用此方法。

如果设备没有显示名称，则所需大小为 1，并且此方法会写入一个空字符串。

显示名称是设备的“友好”名称。你可以在应用程序的 UI 中显示它，但不保证它已本地化。GameInput 会在多个位置搜索此字符串，最后的回退之一是设备的固件。

显示名称在设备对象的生存期内不会更改。

以下示例检索设备的显示名称。

```cpp theme={null}
std::string GetDeviceDisplayName(IGameInputDevice* device)
{
    const uint32_t size = device->GetDisplayName(0, nullptr);
    if (size == 0)
    {
        return {};
    }

    std::vector<char> buffer(size);
    device->GetDisplayName(size, buffer.data());

    return std::string(buffer.data());
}
```

在 GameInput v3 及更早版本中，此信息可从 [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/zh-CN/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md) 返回的 [GameInputDeviceInfo](https://docs.xbox.com/zh-CN/reference/input/gameinput/deprecated/structs/gameinputdeviceinfo.md) 结构的 `displayName` 成员中获取。

## 要求

**头文件：** GameInput.h

**库：** gameinput.lib

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

## 另请参阅

[GameInput 概述](https://docs.xbox.com/zh-CN/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/zh-CN/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)\
[IGameInputDevice::GetPnpPath](https://docs.xbox.com/zh-CN/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getpnppath.md)

## 版本历史

| 版本 | 变更 |
| - | - |
| **v4** | 引入。 |


## Related topics

- [IGameInputDevice::GetPnpPath](https://docs.xbox.com/zh-CN/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getpnppath.md)
- [IGameInputDevice::GetDeviceFamily](https://docs.xbox.com/zh-CN/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdevicefamily.md)
- [IGameInputDevice::GetDeviceId](https://docs.xbox.com/zh-CN/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceid.md)
- [IGameInputDevice::GetXInputDeviceIndex](https://docs.xbox.com/zh-CN/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getxinputdeviceindex.md)
- [IGameInputDevice::GetUsage](https://docs.xbox.com/zh-CN/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getusage.md)
