Partager via


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