[IMM32] Rewrite ImmLockIMC (#3975)

- Add Imm32InitContext and Imm32LockIMCEx helper functions.
- Re-implement ImmLockIMC function.
- Modify CLIENTIMC and INPUTCONTEXTDX structures.
CORE-11700
This commit is contained in:
Katayama Hirofumi MZ 2021-09-27 09:32:24 +09:00 committed by GitHub
parent be9a788f8b
commit b3382d8d24
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 212 additions and 37 deletions

View file

@ -92,17 +92,19 @@ typedef struct INPUTCONTEXTDX /* unconfirmed */
INPUTCONTEXT;
UINT nVKey;
BOOL bNeedsTrans;
DWORD dwUnknownCat;
DWORD dwUnknown1;
DWORD dwUIFlags;
DWORD dwUnknownDog;
void *pUnknownFox;
/* ... */
DWORD dwUnknown2;
void *pUnknown3;
DWORD dwUnknown4;
DWORD dwUnknown5;
} INPUTCONTEXTDX, *LPINPUTCONTEXTDX;
#ifndef _WIN64
C_ASSERT(offsetof(INPUTCONTEXTDX, nVKey) == 0x140);
C_ASSERT(offsetof(INPUTCONTEXTDX, bNeedsTrans) == 0x144);
C_ASSERT(offsetof(INPUTCONTEXTDX, dwUIFlags) == 0x14c);
C_ASSERT(sizeof(INPUTCONTEXTDX) == 0x160);
#endif
// bits of fdwInit of INPUTCONTEXT