IGameInput 接口实例。
语法
参数
riid _In_类型:REFIID 要获取的
IGameInput 接口的接口 ID (IID)。IID 用于选择 GameInput API 版本,例如 v4 使用 __uuidof(GameInput::v4::IGameInput),v0 使用 __uuidof(GameInput::v0::IGameInput)。
ppv _COM_Outptr_类型:LPVOID* 接收底层每进程单一实例的所请求接口。如果函数失败,则设置为
nullptr。
返回值
类型:HRESULT 成功时返回S_OK。如果 riid 不是 IGameInput 接口的 IID,或者已安装的 GameInput 运行时不支持所请求的 API 版本,则返回 E_NOINTERFACE。如果无法加载 GameInput 运行时,则返回其他错误代码。
备注
GameInputInitialize 的工作方式与 GameInputCreate 类似,但它接受你所需 IGameInput 版本的 IID。这两个函数返回的都是同一个每进程单一实例上的接口。第一次调用会创建该单一实例,之后的调用会为其添加引用。有关何时调用这些函数以及应保留引用多长时间的指导,请参阅 GameInputCreate。
GameInput 运行时支持所有低于或等于其自身主版本的 API 版本。例如,GameInput 4.0 运行时接受从 v0 到 v4 的任何 IGameInput 版本的 IID。如果请求的版本比已安装的运行时更新,函数将失败并返回 E_NOINTERFACE。你可以借此在运行时检查是否有更新的 API 版本可用。
与 GameInputCreate 的关系
从 v3 开始,GameInput 头文件中的GameInputCreate 是一个内联函数,它使用该头文件所声明的 IGameInput 接口的 IID 调用 GameInputInitialize:
GameInputCreate 会创建与你所包含的头文件相匹配的 IGameInput 版本。若要在不包含其头文件的情况下创建其他版本,请直接调用 GameInputInitialize。
在 v0 中,GameInputCreate 是由 GameInput.lib 导出的函数,并且始终创建 v0 接口。Microsoft.GameInput NuGet 包中的 GameInput.lib 则改为导出 GameInputInitialize。若要在链接该库时创建 v0 接口,请使用 v0 IID 调用 GameInputInitialize。v0 头文件未声明 GameInputInitialize,因此需要自行声明:
GameInputInitialize,则对于 v0 IID,该库会回退到运行时的 GameInputCreate;对于其他任何 IID,则返回 E_NOINTERFACE。
若要获取已有 IGameInput 对象的其他 API 版本,请对其调用 QueryInterface,而不是再次调用 GameInputInitialize。有关详细信息和示例,请参阅在一个应用程序中使用多个 GameInput API 版本。
要求
头文件: GameInput.h 库: GameInput.lib 支持的平台: Windows、XBOX One 系列主机和 XBOX Series 主机另请参阅
GameInputCreateGameInput API 版本管理
在一个应用程序中使用多个 GameInput API 版本
GameInput
