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