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


Функция 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 [только классические приложения]
Целевая платформа Windows
Header imm.h (включая Immdev.h, Windows.h)
Библиотека Imm32.lib
DLL Imm32.dll

См. также раздел

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

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

RECONVERTSTRING

WM_IME_COMPOSITION