[IMM32] Add some candidate handlings (#3799)

- Implement ImmGetCandidateListA and ImmGetCandidateListW, by using newly added ImmGetCandidateListAW function.
- Implement ImmLockClientImc and ImmUnlockClientImc functions.
- Modify imm32.spec.
- Remove #ifdef's.
CORE-11700
This commit is contained in:
Katayama Hirofumi MZ 2021-07-11 09:48:15 +09:00 committed by GitHub
parent 8379c87b0b
commit 92393a7517
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 378 additions and 237 deletions

View file

@ -7,9 +7,23 @@
#pragma once
#define KBDLAYOUT_MASK 0xF000
#define KBDLAYOUT_IME 0xE000
#define IS_IME_KBDLAYOUT(hKL) ((HIWORD(hKL) & KBDLAYOUT_MASK) == KBDLAYOUT_IME)
/* unconfirmed */
typedef struct tagCLIENTIMC
{
HIMC hImc;
LONG cLockObj;
DWORD dwFlags;
DWORD unknown;
RTL_CRITICAL_SECTION cs;
DWORD unknown2;
DWORD unknown3;
BOOL bUnknown4;
} CLIENTIMC, *PCLIENTIMC;
/* flags for CLIENTIMC */
#define CLIENTIMC_WIDE (1 << 0)
#define CLIENTIMC_DISABLED (1 << 6)
#define CLIENTIMC_UNKNOWN2 (1 << 8)
#ifdef __cplusplus
extern "C" {