IDirectInputJoyConfig8::SetTypeInfo 方法 (dinputd.h)

IDirectInputJoyConfig8::SetTypeInfo 方法创建新的游戏杆类型或重新定义有关现有游戏杆类型的信息。

语法

HRESULT SetTypeInfo(
  LPCWSTR          unnamedParam1,
  LPCDIJOYTYPEINFO unnamedParam2,
  DWORD            unnamedParam3,
  LPWSTR           unnamedParam4
);

参数

unnamedParam1

指向类型的名称。 类型的名称不能超过 MAX_JOYSTRING 个字符,包括终止 null 字符。 如果类型名称尚不存在,则会创建它。 不能更改预定义类型的类型信息。 名称不能以“#”字符开头。 以“#”开头的类型由 DirectInput 保留。

unnamedParam2

指向一个结构,该结构接收有关游戏杆类型的信息。

unnamedParam3

指定 pjti 指向的 DIJOYTYPEINFO 结构的各个部分,其中包含要设置的值。

DITC_REGHWSETTINGS

指示游戏杆的注册表硬件设置有效。

DITC_CLSIDCONFIG

指示游戏杆配置 CLSID 有效。 如果值为全部零,则此游戏杆类型没有自定义配置。

DITC_DISPLAYNAME

指示游戏杆类型的显示名称有效。

DITC_CALLOUT

指示游戏杆类型的标注有效。

unnamedParam4

如果类型名称不是采用VID_xxxx&PID_yyyy格式的 OEM 类型,则此参数将返回 Dinput 分配VID_xxxx&PID_yyyy格式的名称。 调用 SetConfig 时,应在 DIJOYCONFIG.wszType 字段中使用此VID_xxxx&PID_yyyy名称。

返回值

如果成功,则返回DI_OK;否则,返回以下 COM 错误值之一:

返回代码 描述
DIERR_NOTACQUIRED
尚未获取游戏杆配置。 必须先调用 IDirectInputJoyConfig8::Acquire ,然后才能通知应用程序和驱动程序游戏杆配置发生更改。
DIERR_INVALIDPARAM
一个或多个参数无效。
DIERR_READONLY
尝试更改预定义的类型。

要求

   
目标平台 桌面
标头 dinputd.h (包括 Dinputd.h)