ImmSetCompositionStringW 函数 (immdev.h)

设置组合字符串和读取字符串的字符、属性和子句。

语法

BOOL ImmSetCompositionStringW(
                 HIMC   unnamedParam1,
  [in]           DWORD  dwIndex,
  [in, optional] LPVOID lpComp,
  [in]           DWORD  dwCompLen,
  [in, optional] LPVOID lpRead,
  [in]           DWORD  dwReadLen
);

参数

unnamedParam1

[in] dwIndex

要设置的信息类型。 此参数可以具有以下值之一。

价值 意义
SCS_SETSTR
设置组合字符串、读取字符串或两者。 至少有一个 lpComplpRead 参数必须指示有效的字符串。 如果任一字符串太长,则 IME 将截断它。
SCS_CHANGEATTR
设置组合字符串、读取字符串或两者的属性。 至少有一个 lpComplpRead 参数必须指示有效的属性数组。
SCS_CHANGECLAUSE
为组合字符串、读取字符串或两者设置子句信息。 至少有一个 lpComplpRead 参数必须指向有效的子句信息数组。
SCS_SETRECONVERTSTRING
Windows Me/98、Windows 2000、Windows XP: 要求 IME 使用指定的 RECONVERTSTRING 结构来重新转换字符串。
SCS_QUERYRECONVERTSTRING
Windows Me/98、Windows 2000、Windows XP: 要求 IME 调整 RECONVERTSTRING 结构。 然后,应用程序可以使用SCS_SETRECONVERTSTRING将调整的结构传递到此函数中。 IME 不会生成任何 WM_IME_COMPOSITION 消息。

[in, optional] lpComp

指向包含为组合字符串设置的信息的缓冲区的指针,该值由 dwIndex的值指定。

[in] dwCompLen

即使指定了SCS_SETSTR并且缓冲区包含 Unicode 字符串,组合字符串的信息缓冲区的大小(以字节为单位)。

[in, optional] lpRead

指向包含为读取字符串设置的信息的缓冲区的指针,该值由 dwIndex的值指定。 应用程序可以将此参数设置为 NULL

[in] dwReadLen

即使指定了SCS_SETSTR并且缓冲区包含 Unicode 字符串,读取字符串的信息缓冲区的大小(以字节为单位)。

返回值

如果成功,则返回非零值,否则返回 0。

言论

应用程序可以设置 lpComplpRead或两者。 如果应用程序未指定 lpComp的值,则必须将此参数设置为 NULL,并将 dwCompLen 设置为 0。

当应用程序更改属性时,子句中的所有字符都必须具有相同的属性。 转换后的字符必须具有属性ATTR_CONVERTED或ATTR_TARGET_CONVERTED。 未转换的字符必须具有属性ATTR_INPUT或ATTR_TARGET_NOTCONVERTED。

当应用程序更改子句信息时,它只能更改目标子句,一次只影响一个边界。 目标子句具有属性ATTR_TARGET_CONVERTED或ATTR_TARGET_NOTCONVERTED。

有关属性(ATTR_* 值)的其他信息,请参阅 组合字符串

当 IME 完成更改时,它会向应用程序发送 WM_IME_COMPOSITION 消息,以通知其更改。

Windows Me/98、Windows 2000、Windows XP: SCS_*CONVERTSTRING 值用于重新转换。 它们只能用于具有SCS_CAP_SETRECONVERTSTRING属性的 IME。 应用程序使用以下值:

  1. 使用 SCS_QUERYRECONVERTSTRING 调用 ImmSetCompositionString,以便 IME 调整重新转换的 RECONVERTSTRING 结构。
  2. 使用 SCS_SETRECONVERTSTRING 调用 ImmSetCompositionString,以便 IME 生成新的组合字符串。 之后,lpComplpRead 指示包含更新的合成和读取字符串的 RECONVERTSTRING 结构。 仅当选定的 IME 已设置SCS_CAP_MAKEREAD时,才使用 lpRead 的值。

注意

immdev.h 标头将 ImmSetCompositionString 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用],已安装东亚语言支持。
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 immdev.h (包括 Immdev.h、Windows.h)
Imm32.lib
DLL Imm32.dll

另请参阅

输入法管理器

输入法管理器函数

重新定位

WM_IME_COMPOSITION