[NTUSER][USER32] Implement IntImmProcessKey (#4353)

- Establish the trampoline callback USER32_CALLBACK_IMMPROCESSKEY for imm32!ImmProcessKey function, between NTUSER and IMM32.
- Add IntGetImeCompatFlags helper function.
- Implement co_IntImmProcessKey and IntImmProcessKey functions.
CORE-11700
This commit is contained in:
Katayama Hirofumi MZ 2022-02-12 08:32:13 +09:00 committed by GitHub
parent 27d73cd78b
commit b5c9d532e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 224 additions and 26 deletions

View file

@ -19,7 +19,8 @@
#define USER32_CALLBACK_SETOBM (15)
#define USER32_CALLBACK_LPK (16)
#define USER32_CALLBACK_UMPD (17)
#define USER32_CALLBACK_MAXIMUM (17)
#define USER32_CALLBACK_IMMPROCESSKEY (18)
#define USER32_CALLBACK_MAXIMUM (18)
typedef struct _WINDOWPROC_CALLBACK_ARGUMENTS
{
@ -168,6 +169,15 @@ typedef struct _LPK_CALLBACK_ARGUMENTS
BOOL bRect;
} LPK_CALLBACK_ARGUMENTS, *PLPK_CALLBACK_ARGUMENTS;
typedef struct _IMMPROCESSKEY_CALLBACK_ARGUMENTS
{
HWND hWnd;
HKL hKL;
UINT vKey;
LPARAM lParam;
DWORD dwHotKeyID;
} IMMPROCESSKEY_CALLBACK_ARGUMENTS, *PIMMPROCESSKEY_CALLBACK_ARGUMENTS;
NTSTATUS WINAPI
User32CallCopyImageFromKernel(PVOID Arguments, ULONG ArgumentLength);
NTSTATUS WINAPI
@ -204,4 +214,6 @@ NTSTATUS WINAPI
User32CallLPKFromKernel(PVOID Arguments, ULONG ArgumentLength);
NTSTATUS WINAPI
User32CallUMPDFromKernel(PVOID Arguments, ULONG ArgumentLength);
NTSTATUS WINAPI
User32CallImmProcessKeyFromKernel(PVOID Arguments, ULONG ArgumentLength);
#endif /* __INCLUDE_USER32_CALLBACK_H */