diff --git a/dll/win32/imm32/imm.c b/dll/win32/imm32/imm.c index 5bdd37a031a..31bd2ac339f 100644 --- a/dll/win32/imm32/imm.c +++ b/dll/win32/imm32/imm.c @@ -3013,7 +3013,13 @@ DWORD WINAPI ImmGetIMCLockCount(HIMC hIMC) */ HIMCC WINAPI ImmCreateIMCC(DWORD size) { +#ifdef __REACTOS__ + if (size < 4) + size = 4; + return LocalAlloc(LHND, size); +#else return GlobalAlloc(GMEM_ZEROINIT | GMEM_MOVEABLE, size); +#endif } /*********************************************************************** @@ -3021,7 +3027,13 @@ HIMCC WINAPI ImmCreateIMCC(DWORD size) */ HIMCC WINAPI ImmDestroyIMCC(HIMCC block) { +#ifdef __REACTOS__ + if (block) + return LocalFree(block); + return NULL; +#else return GlobalFree(block); +#endif } /*********************************************************************** @@ -3029,7 +3041,13 @@ HIMCC WINAPI ImmDestroyIMCC(HIMCC block) */ LPVOID WINAPI ImmLockIMCC(HIMCC imcc) { +#ifdef __REACTOS__ + if (imcc) + return LocalLock(imcc); + return NULL; +#else return GlobalLock(imcc); +#endif } /*********************************************************************** @@ -3037,7 +3055,13 @@ LPVOID WINAPI ImmLockIMCC(HIMCC imcc) */ BOOL WINAPI ImmUnlockIMCC(HIMCC imcc) { +#ifdef __REACTOS__ + if (imcc) + return LocalUnlock(imcc); + return FALSE; +#else return GlobalUnlock(imcc); +#endif } /*********************************************************************** @@ -3045,7 +3069,11 @@ BOOL WINAPI ImmUnlockIMCC(HIMCC imcc) */ DWORD WINAPI ImmGetIMCCLockCount(HIMCC imcc) { +#ifdef __REACTOS__ + return LocalFlags(imcc) & LMEM_LOCKCOUNT; +#else return GlobalFlags(imcc) & GMEM_LOCKCOUNT; +#endif } /*********************************************************************** @@ -3053,7 +3081,13 @@ DWORD WINAPI ImmGetIMCCLockCount(HIMCC imcc) */ HIMCC WINAPI ImmReSizeIMCC(HIMCC imcc, DWORD size) { +#ifdef __REACTOS__ + if (!imcc) + return NULL; + return LocalReAlloc(imcc, size, LHND); +#else return GlobalReAlloc(imcc, size, GMEM_ZEROINIT | GMEM_MOVEABLE); +#endif } /*********************************************************************** @@ -3061,7 +3095,13 @@ HIMCC WINAPI ImmReSizeIMCC(HIMCC imcc, DWORD size) */ DWORD WINAPI ImmGetIMCCSize(HIMCC imcc) { +#ifdef __REACTOS__ + if (imcc) + return LocalSize(imcc); + return 0; +#else return GlobalSize(imcc); +#endif } /***********************************************************************