The ImmSetCompositionString function sets the characters, attributes, and clauses of the composition and reading strings.
BOOL ImmSetCompositionString(
HIMC hIMC, | |
DWORD dwIndex, | |
LPCVOID lpComp, | |
DWORD dwCompLen, | |
LPCVOID lpRead, | |
DWORD dwReadLen | |
); |
Value |
Meaning |
SCS_SETSTR |
Sets the composition string, the reading string, or both. At least one of the lpComp and lpRead parameters must point to a valid string. If either string is too long, the IME truncates it. |
SCS_CHANGEATTR |
Sets attributes for the composition string, the reading string, or both. At least one of the lpComp and lpRead parameters must point to a valid attribute array. |
SCS_CHANGECLAUSE |
Sets the clause information for the composition string, the reading string, or both. At least one of the lpComp and lpRead parameters must point to a valid clause information array. |
If the function succeeds, the return value is a nonzero value.
If the function fails, the return value is zero.
When changing attributes, all characters in a clause must have the same attribute. Converted characters must be either ATTR_CONVERTED or ATTR_TARGET_CONVERTED; unconverted characters either ATTR_INPUT or ATTR_TARGET_NOTCONVERTED.
When changing clause information, only the target clause can be changed and only one boundary of the clause can be changed at a time. The target clause has the ATTR_TARGET_CONVERTED or ATTR_TARGET_NOTCONVERTED attribute.
When the IME completes the changes, it sends a WM_IME_COMPOSITION message to the application notifying it of the changes.