[IMM32][NTUSER] Strictly check Cicero IME (#8009)

This PR enhances Cicero IME support.
JIRA issue: CORE-19268
- Add null checks for the functions
  of Cicero IMEs in Imm32LoadIME
  function.
- Add and use
  IS_CICERO_COMPAT_DISABLED
  macro in win32ss/include/ntuser.h.
- Fix ImmGetImeInfoEx,
  Imm32LoadImeDpi,
  ImmGetDescriptionA,
  ImmGetDescriptionW,
  ImmGetIMEFileNameA,
  ImmGetIMEFileNameW, and
  ImmGetProperty functions for
  Cicero IME support.
- Set last error in NtUserGetImeInfoEx.
This commit is contained in:
Katayama Hirofumi MZ 2025-05-20 07:34:46 +09:00 committed by GitHub
parent 7ce90a0399
commit c876fe350d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 58 additions and 79 deletions

View file

@ -1206,9 +1206,14 @@ typedef struct tagCURSORDATA
#define CURSORF_LINKED 0x0100
#define CURSORF_CURRENT 0x0200
/* Flags for dwCompatFlags2 */
#define COMPAT_FLAG_2_CICERO_DISABLED 2
#define IS_IMM_MODE() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_IMM32))
#define IS_CICERO_MODE() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_CICERO_ENABLED))
#define IS_16BIT_MODE() (GetWin32ClientInfo()->dwTIFlags & TIF_16BIT)
#define IS_CICERO_COMPAT_DISABLED() \
(GetWin32ClientInfo()->dwCompatFlags2 & COMPAT_FLAG_2_CICERO_DISABLED)
typedef struct tagIMEUI
{