LMDATA (Compact 2013)
3/28/2014
This structure is used by the IIMCallback2::SendAlternatives2 interface to send information from an input method to an input method editor (IME).
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 example, 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
Requirements
Header |
sip.h |
sysgen |
SYSGEN_SOFTKB |
See Also
Reference
Software-based Input Panel Structures
IIMCallback2::SendAlternatives2