Поделиться через


Функция ImmSetCompositionStringA (imm.h)

Задает символы, атрибуты и предложения композиции и строки чтения.

Синтаксис

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

Параметры

unnamedParam1

[in] dwIndex

Тип сведений для задания. Этот параметр может иметь одно из следующих значений.

Ценность Значение
SCS_SETSTR
Задайте строку композиции, строку чтения или оба. По крайней мере один из lpComp и lpRead параметры должны указывать допустимую строку. Если любая строка слишком длинна, IME усечена.
SCS_CHANGEATTR
Задайте атрибуты для строки композиции, строки чтения или обоих. По крайней мере один из lpComp и lpRead параметры должны указывать допустимый массив атрибутов.
SCS_CHANGECLAUSE
Задайте сведения о предложении для строки композиции, строки чтения или обоих. По крайней мере один из параметров lpComp и lpRead должен указывать на допустимый массив сведений о предложении.
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, а буфер содержит строку Юникода.

[in, optional] lpRead

Указатель на буфер, содержащий сведения, заданные для строки чтения, как указано значением dwIndex. Приложение может задать для этого параметра значение NULL.

[in] dwReadLen

Размер в байтах буфера сведений для строки чтения, даже если указан SCS_SETSTR, а буфер содержит строку Юникода.

Возвращаемое значение

Возвращает ненулевое значение в случае успешного выполнения или 0 в противном случае.

Замечания

Приложение может задать lpComp, lpReadили обоих. Если приложение не указывает значение для 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 используются для рековерверсии. Их можно использовать только для IME с свойством SCS_CAP_SETRECONVERTSTRING. Приложение использует следующие значения:

  1. Вызов ImmSetCompositionString с SCS_QUERYRECONVERTSTRING, чтобы IME настраивал структуру RECONVERTSTRING для рековерверсии.
  2. Вызов ImmSetCompositionString с SCS_SETRECONVERTSTRING, чтобы IME создает новую строку композиции. После этого lpComp и lpRead указывают структуру RECONVERTSTRING, содержащую обновленную композицию и строку чтения. Используйте значение lpRead только в том случае, если выбранный IME имеет SCS_CAP_MAKEREAD набор.

Заметка

Заголовок imm.h определяет ImmSetCompositionString как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения], установленная поддержка языка Восточной Азии.
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка imm.h (include Immdev.h, Windows.h)
библиотеки Imm32.lib
DLL Imm32.dll

См. также

диспетчера методов ввода

Функции диспетчера методов ввода

RECONVERTSTRING

WM_IME_COMPOSITION