IMEINFO

This structure is used internally by IMM and the IME interface.

typedef struct tagIMEInfo {
  DWORD  dwPrivateDataSize;  // byte count of private data
  DWORD  fdwProperty;        // IME property bits
  DWORD  fdwConversionCaps;  // IME conversion mode capability bits
  DWORD  fdwSentenceCaps;    // IME sentence mode capability
  DWORD  fdwUICaps;          // IME UI capability
  DWORD  fdwSCSCaps;         // ImeSetCompositionString capability
  DWORD  fdwSelectCaps;      // IME inherit IMC capability
} IIMEINFO;
 

The high-order word of fdwProperty has the following values. These properties are used by applications.

IME_PROP_AT_CARET
This bit on indicates the IME conversion window is at the caret position. This bit off indicates a near caret position operation IME.
IME_PROP_SPECIAL_UI
This bit on indicates the IME has a special UI. An IME should set this bit only if it has a UI that an application cannot display. Typically, an IME will not set this flag.
IME_PROP_CANDLIST_START_FROM_1
This bit on indicates the UI of the candidate list strings starts from zero or 1. An application can draw the candidate list string by adding 1, 2, 3, and so on, to the front of the candidate string.
IME_PROP_UNICODE
This bit on indicates the string contents of the input context are in UNICODE

The low-order word of fdwProperty has the follow values. These properties are used by the system.

Properties Description
IME_PROP_END_UNLOAD This bit on indicates the IME is unloaded when it is inactive.
IME_PROP_KBD_CHAR_FIRST This bit on indicates the system translates the character by keyboard first. This character is passed to IME as aid information. No aid information is provided when this bit is off.
IME_PORP_NEED_ALTKEY This IME needs the ALT key to be passed to ImeProcessKey.
IME_PROP_IGNORE_UPKEYS This IME does not need up keys to be passed to ImeProcessKey.

The fdwConversionCaps member shares the same definition for the conversion mode. If the relative bit is off, this IME does not have the capability to handle either the corresponding bit of conversion mode is on or off.

Value Meaning
IME_CMODE_KATAKANA This bit on indicates IME is in KATAKANA mode. Otherwise, the IME is in HIRAGANA mode.
IME_CMODE_NATIVE This bit on indicates IME is in NATIVE mode. Otherwise, the IME is in ALPHANUMERIC mode.
IME_CMODE_FULLSHAPE This bit on indicates IME is in full shape mode. Otherwise, the IME is in SBCS mode.
IME_CMODE_ROMAN This bit on indicates IME is in ROMAN input mode. Otherwise, the IME is in non-ROMAN input mode.
IME_CMODE_CHARCODE This bit on indicates IME is in CODE input mode. Otherwise, the IME is in non-CODE input mode.
IME_CMODE_HANJACONVERT This bit on indicates IME is in HANJA convert mode. Otherwise, the IME is in non-HANJA convert mode.
IME_CMODE_SOFTKBD This bit on indicates IME is in soft keyboard mode. Otherwise, the IME is in nonsoft keyboard mode.
IME_CMODE_NOCONVERSION This bit on indicates IME is in no conversion mode. Otherwise, the IME is in conversion mode.
IME_CMODE_EUDC This bit on indicates IME is in EUDC mode. Otherwise, the IME is not in EUDC mode. Under this mode, if GCS_RESULTSTR is generated, the current reading string is valid and can be converted. In some IMEs, if the vowel is not included, it is not a valid reading string. The EUDC editor should not provide such a reading string. The result string may contain nothing under GCS_RESULTSTR generated, because the string is the EUDC string that EUDC editor is going to register.
IME_CMODE_SYMBOL This bit on indicates IME is in SYMBOL mode. Otherwise, the IME is not in SYMBOL mode.

The fdwSentenceCaps member shares the same constant definition for the sentence mode. If the relative bit is off, this IME does not have the capability to handle either the corresponding bit of sentence mode is on or off.

Value Meaning
IME_SMODE_PLAURALCLAUSE This bit on indicates IME supports plural clause sentence mode.
IME_SMODE_SINGLECONVERT This bit on indicates IME support single character sentence mode.
IME_SMODE_AUTOMETIC This bit on indicates IME support automatic sentence mode.
IME_SMODE_PHRASEPREDICT This bit on indicates IME support phrase predict sentence mode.

The fdwUICaps has the follow bits.

Value Meaning
UI_CAP_2700 The UI supports the escape in which the LogFont is zero or 2700.
UI_CAP_ROT90 The UI supports the escape in which LogFont is zero, 900, 1800, or 2700.
UI_CAP_ROTANY The UI supports any escape.
UI_CAP_SOFKBD The IME uses soft keyboard provided by the system.

The fdwSCSCaps member has the follow values:

Value Meaning
SCS_CAP_COMPSTR This IME can generate the composition string by SCS_SETSTR.
SCS_CAP_MAKEREAD When calling ImmSetCompositionString with SCS_SETSTR, the IME can create the reading of the composition string without lpRead. Under an IME that has this capability, the application does not need to set lpRead for SCS_SETSTR.

The fdwSelectCaps has the follow values:

Value Meaning
SELECT_CAP_CONVMODE The IME can inherit the conversion mode at ImeSelect.
SELECT_CAP_SENTENCE The IME can inherit the sentence mode at ImeSelect.

This capability is for the application. When the user changes the IME, the application can know if the conversion mode will be inherited by seeing this capability. If the newly selected IME does not have this capability, the application cannot expect the new mode and it must retrieve the mode again.