GameInput 发行说明

版本 1.1

  • 应用程序不再需要调用 CoInitialize
  • 修复了缺少设备断开连接通知的修复问题。
  • 修复了 FindDeviceFromId 不返回所请求设备的方法。
  • 修复了标头中的编译器兼容性问题。
  • 稳定性和性能改进。

版本 1.0

  • 添加了对读取回调的支持。
  • 添加了对触控板的支持。
  • 添加了对绝对鼠标坐标的支持。
  • 添加了对远程会话的支持。
  • 公开了其他设备信息,包括 PnP 路径和显示名称。
  • 删除了已弃用的 API、字段和常量。

虽然此版本的 GameInput 仅适用于电脑,但如果您在电脑上使用早期版本的 GameInput,或使用 GDK 与 Xbox 上的 GameInput 共享代码,请注意,已删除许多未实现的函数以及相应的枚举和常量。 此外,API 已放置在 命名空间中, GameInput::v1 以方便版本控制。 由于这些更改,使用此 (和将来) 版本生成代码时,可能会遇到编译错误。 值得注意的更改包括:

  1. IGameInputDevice::GetDeviceInfo 以前将生成的 IGameInputDeviceInfo 结构作为函数的返回值返回。 此结构现在作为 out 参数在函数上返回,并且函数的返回值现在 HRESULT为 。

  2. IGameInput::UnregisterCallback 以前使用超时值作为其第二个参数,但此参数已被删除。 在这两种情况下,与主机上用于 XCloud 的触摸 API 一起,使用 GAMEINPUT_API_VERSION 定义在电脑和主机之间有条件地编译 (或排除) 代码。

  3. IGameInputReading::GetSequenceNumber 已删除。 请改为使用 IGameInputReading::GetTimestamp

示例:

#include <GameInput.h>
#ifndef GAMEINPUT_API_VERSION
#define GAMEINPUT_API_VERSION 0
#endif

#if GAMEINPUT_API_VERSION == 1
using namespace GameInput::v1;
#endif

// ...

#if GAMEINPUT_API_VERSION >= 1
    device->GetDeviceInfo(&deviceInfo);
#else
    deviceInfo = device->GetDeviceInfo();
#endif

另请参阅

GameInput API 版本控制