Input Languages
9/8/2008
Diferentemente layout o dispositivo, o idioma de entrada não é específico do hardware. O idioma de entrada contém o Virtual código de chave - código de chave para Unicode conversões e virtual - para conversões codificar digitalizar XT. O protocolo RDP (protocolo de área de trabalho remota) requer o Virtual-código de chave para mapeamento codificar digitalizar XT. Para obter mais informações, consulte Suporte de protocolo da Área de Trabalho Remoto.
A palavra baixa de uma entrada localidade identifica um idioma de entrada.
Descreve o relacionamento complexo entre as chaves modificador e o Virtual InputLang.h-código de chave para conversão Unicode. Layout Manager mapeia o atual modificador teclas, como SHIFT, CTRL e assim por diante, para um índice para o Virtual-código de chave para Unicode tabelas. Em seguida, ele procura as tabelas para a chave virtual e usa o índice das chaves modificador para determinar seu valor Unicode.
O seguinte exemplo de código mostra o idioma de entrada estruturas dados; Esses são declaradas em InputLang.h.
typedef struct _INPUT_LANGUAGE {
DWORD dwSize;
DWORD dwType;
DWORD dwSubType;
// Modifier keys
const MODIFIERS *pCharModifiers;
// Optional shift key table
const VK_TO_SHIFT *pVkToShiftState;
// Optional toggle key table
const VK_TO_SHIFT *pVkToToggledState;
// Virtual key to Unicode
const VK_TO_WCHAR_TABLE *pVkToWcharTable;//ptr to tbl of ptrs to tbl
// Dead keys
const DEADKEY *pDeadKey;
// Virtual key to XT scan code
const VKEY_TO_SCANCODE *pVkToScanCodeTable;
// Locale-specific special processing
DWORD fLocaleFlags;
// Ligatures (Not currently supported. Here for compatibility only.)
BYTE nLgMax;
BYTE cbLgEntry;
const LIGATURE1 *pLigature;
BYTE bcFnKeys;
} INPUT_LANGUAGE, *PINPUT_LANGUAGE;
typedef BOOL (*PFN_INPUT_LANGUAGE_ENTRY)(PINPUT_LANGUAGE pInputLanguage);