mirror of
https://github.com/reactos/reactos.git
synced 2024-09-03 17:19:20 +00:00
![Katayama Hirofumi MZ](/assets/img/avatar_default.png)
- Add Imm32InitContext and Imm32LockIMCEx helper functions. - Re-implement ImmLockIMC function. - Modify CLIENTIMC and INPUTCONTEXTDX structures. CORE-11700
54 lines
1.3 KiB
C
54 lines
1.3 KiB
C
/*
|
|
* PROJECT: ReactOS api tests
|
|
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
|
* PURPOSE: Test for imm32 ImmLockClientImc/ImmUnlockClientImc
|
|
* COPYRIGHT: Copyright 2021 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
|
|
*/
|
|
|
|
#include "precomp.h"
|
|
|
|
#if 0
|
|
static void DumpBinary(LPCVOID pv, size_t cb)
|
|
{
|
|
const BYTE *pb = pv;
|
|
while (cb--)
|
|
{
|
|
printf("%02X ", (BYTE)*pb++);
|
|
}
|
|
printf("\n");
|
|
}
|
|
#endif
|
|
|
|
START_TEST(clientimc)
|
|
{
|
|
DWORD dwCode;
|
|
CLIENTIMC *pClientImc = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CLIENTIMC));
|
|
|
|
pClientImc->hInputContext = (HANDLE)ImmCreateIMCC(4);
|
|
pClientImc->cLockObj = 2;
|
|
pClientImc->dwFlags = 0x40;
|
|
RtlInitializeCriticalSection(&pClientImc->cs);
|
|
ok_long(ImmGetIMCCSize((HIMCC)pClientImc->hInputContext), 4);
|
|
|
|
ImmUnlockClientImc(pClientImc);
|
|
ok_long(pClientImc->cLockObj, 1);
|
|
ok_long(ImmGetIMCCSize((HIMCC)pClientImc->hInputContext), 4);
|
|
|
|
dwCode = 0;
|
|
_SEH2_TRY
|
|
{
|
|
ImmUnlockClientImc(pClientImc);
|
|
}
|
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
|
{
|
|
dwCode = _SEH2_GetExceptionCode();
|
|
}
|
|
_SEH2_END;
|
|
ok_long(dwCode, STATUS_ACCESS_VIOLATION);
|
|
|
|
ok_long(pClientImc->cLockObj, 0);
|
|
ok_long(ImmGetIMCCSize((HIMCC)pClientImc->hInputContext), 0);
|
|
|
|
HeapFree(GetProcessHeap(), 0, pClientImc);
|
|
}
|