[NTUSER] Implement NtUserSetImeInfoEx (#4276)

- Modify NtUserSetImeInfoEx prototype.
- Add UserSetImeInfoEx helper function.
- Implement NtUserSetImeInfoEx function.
CORE-11700
This commit is contained in:
Katayama Hirofumi MZ 2022-01-12 12:07:31 +09:00 committed by GitHub
parent 36740ca981
commit 1f44693657
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 54 additions and 7 deletions

View file

@ -3186,7 +3186,7 @@ NtUserSetImeHotKey(
DWORD Unknown3,
DWORD Unknown4);
DWORD
BOOL
NTAPI
NtUserSetImeInfoEx(
PIMEINFOEX pImeInfoEx);

View file

@ -260,13 +260,60 @@ NtUserSetAppImeLevel(
return 0;
}
DWORD
APIENTRY
NtUserSetImeInfoEx(
PIMEINFOEX pImeInfoEx)
BOOL FASTCALL UserSetImeInfoEx(LPVOID pUnknown, PIMEINFOEX pImeInfoEx)
{
STUB;
return 0;
PKL pklHead, pkl;
pkl = pklHead = gspklBaseLayout;
do
{
if (pkl->hkl != pImeInfoEx->hkl)
{
pkl = pkl->pklNext;
continue;
}
if (!pkl->piiex)
return FALSE;
if (!pkl->piiex->fLoadFlag)
*pkl->piiex = *pImeInfoEx;
return TRUE;
} while (pkl != pklHead);
return FALSE;
}
BOOL
APIENTRY
NtUserSetImeInfoEx(PIMEINFOEX pImeInfoEx)
{
BOOL ret = FALSE;
IMEINFOEX ImeInfoEx;
UserEnterExclusive();
if (!IS_IMM_MODE())
goto Quit;
_SEH2_TRY
{
ProbeForRead(pImeInfoEx, sizeof(*pImeInfoEx), 1);
ImeInfoEx = *pImeInfoEx;
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
goto Quit;
}
_SEH2_END;
ret = UserSetImeInfoEx(NULL, &ImeInfoEx);
Quit:
UserLeave();
return ret;
}
DWORD APIENTRY