LMDATA

This structure is used by the IIMCallback2::SendAlternatives2 interface to send information from an input method (IM) to an input method editor (IME).

At a Glance

Header file: Sip.h
Windows CE versions: 2.12 and later

Syntax

typedef struct  _tagLMDATA {
DWORD
dwVersion;
DWORD
flags;
DWORD
cnt;
DWORD
dwOffsetSymbols;
DWORD
dwOffsetSkip;
DWORD
dwOffsetScore;
}LMDATA;

Members

dwVersion

Version number of the structure. This must be set to 0x00010000.

flags

Flags to apply to the structure. This notifies the IME what kind of data a given offset type—symbol, skip, or score—contains. The following table lists the flags. This member is set to a combination of flags, with one flag for each offset type.

Flag Description
LMDATA_SYMBOL_BYTE Symbol information store as a BYTE.
LMDATA_SYMBOL_WORD Symbol information store as a WORD.
LMDATA_SYMBOL_DWORD Symbol information store as a DWORD.
LMDATA_SYMBOL_QWORD Symbol information store as a QUAD WORD.
LMDATA_SKIP_BYTE Skip information store as a BYTE.
LMDATA_SKIP_WORD Skip information store as a WORD.
LMDATA_SCORE_BYTE Score information store as a BYTE.
LMDATA_SCORE_WORD Score information store as a WORD.
LMDATA_SCORE_DWORD Score information store as a DWORD.
LMDATA_SCORE_QWORD Score information store as a QUAD WORD.
LMDATA_SCORE_FLOAT Score information store as a FLOAT.
LMDATA_SCORE_DOUBLE Score information store as a DOUBLE.

The skip flag is not required by the structure.

cnt

Number of rows of data. A row consisting of a symbol, a score, and optionally a skip. For each symbol sent there is a score and perhaps a skip that form a row.

dwOffsetSymbols

Offset to the start of the symbol table. The offset is from the end of the LMDATA structure.

dwOffsetSkip

Offset to the start of the skip table. The offset is from the end of the LMDATA structure.

dwOffsetScore

Offset to the start of the score table. The offset is from the end of the LMDATA structure.

Remarks

The description of the LMDATA structure can vary from application to application. For example, if the symbol being sent is really a word then the symbol table can be used as an offset to the actual word. This implementation depends completely on the how an IME and IM have agreed to share data.

In the following code sample, a memory dump is shown for a structure that contains WORD symbols and a score only.

Offset      Value         Comment
0x0000      0x00010000      Version 1.0 data structure
0x0004      0x00000102      LMDATA_SYMBOL_WORD | LMDATA_SCORE_DWORD
0x0008      0x00000007      7 values in each column      
0x000c      0x00000000      offset to symbol data
0x0010      0x00000000      offset to skip data
0x0014      0x00000010      offset to score data
0x0018      0x6eae         first symbol
0x001a      0x8a01         second symbol
0x001c      0x4efe         third symbol
0x001e      0x9f44         fourth symbol
0x0020      0x7784         fifth symbol
0x0022      0x888e         sixth symbol
0x0024      0x900f         seventh symbol
0x0026      0x0000         padding for data type alignment
0x0028      0xfffe1008      score for first symbol
0x002c      0xfffdcbfe      score for second symbol
0x0030      0xfffda778      score for third symbol
0x0034      0xfffcfed0      score for fourth symbol
0x0038      0xfffb9965      score for fifth symbol
0x003c      0xfffab430      score for sixth symbol
0x0040      0xfffa7ffe      score for seventh symbol