https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5afc3243599276d212e2ac...
commit 5afc3243599276d212e2acc9fe28f0030eb36aa5 Author: Katayama Hirofumi MZ katayama.hirofumi.mz@gmail.com AuthorDate: Sun Jul 25 11:55:03 2021 +0900 Commit: GitHub noreply@github.com CommitDate: Sun Jul 25 11:55:03 2021 +0900
[IMM32] Improve ImmUnlockClientImc and Imm32HeapAlloc (#3834)
- Fix Imm32HeapAlloc function. - Fix ImmUnlockClientImc function. CORE-11700 --- dll/win32/imm32/imm.c | 6 +++--- sdk/include/reactos/imm32_undoc.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/dll/win32/imm32/imm.c b/dll/win32/imm32/imm.c index dc62b77bfd2..904e0d25725 100644 --- a/dll/win32/imm32/imm.c +++ b/dll/win32/imm32/imm.c @@ -1017,7 +1017,7 @@ LPVOID APIENTRY Imm32HeapAlloc(DWORD dwFlags, DWORD dwBytes) { if (!g_hImm32Heap) { - g_hImm32Heap = GetProcessHeap(); // FIXME: Use TEB + g_hImm32Heap = RtlGetProcessHeap(); if (g_hImm32Heap == NULL) return NULL; } @@ -1076,7 +1076,7 @@ PCLIENTIMC WINAPI ImmLockClientImc(HIMC hImc) } else { - if (pClientImc->dwFlags & CLIENTIMC_DISABLED) + if (pClientImc->dwFlags & CLIENTIMC_UNKNOWN1) return NULL; }
@@ -1092,7 +1092,7 @@ VOID WINAPI ImmUnlockClientImc(PCLIENTIMC pClientImc) TRACE("ImmUnlockClientImc(%p)\n", pClientImc);
cLocks = InterlockedDecrement(&pClientImc->cLockObj); - if (cLocks != 0 || (pClientImc->dwFlags & CLIENTIMC_DISABLED)) + if (cLocks != 0 || !(pClientImc->dwFlags & CLIENTIMC_UNKNOWN1)) return;
hImc = pClientImc->hImc; diff --git a/sdk/include/reactos/imm32_undoc.h b/sdk/include/reactos/imm32_undoc.h index e207d52bc0e..a2b068fb058 100644 --- a/sdk/include/reactos/imm32_undoc.h +++ b/sdk/include/reactos/imm32_undoc.h @@ -21,9 +21,9 @@ typedef struct tagCLIENTIMC } CLIENTIMC, *PCLIENTIMC;
/* flags for CLIENTIMC */ -#define CLIENTIMC_WIDE (1 << 0) -#define CLIENTIMC_DISABLED (1 << 6) -#define CLIENTIMC_UNKNOWN2 (1 << 8) +#define CLIENTIMC_WIDE 0x1 +#define CLIENTIMC_UNKNOWN1 0x40 +#define CLIENTIMC_UNKNOWN2 0x100
#ifdef __cplusplus extern "C" {