mirror of
https://github.com/reactos/reactos.git
synced 2025-05-08 19:27:00 +00:00
[NTUSER] Implement NtUserSetImeInfoEx (#4276)
- Modify NtUserSetImeInfoEx prototype. - Add UserSetImeInfoEx helper function. - Implement NtUserSetImeInfoEx function. CORE-11700
This commit is contained in:
parent
36740ca981
commit
1f44693657
2 changed files with 54 additions and 7 deletions
|
@ -3186,7 +3186,7 @@ NtUserSetImeHotKey(
|
||||||
DWORD Unknown3,
|
DWORD Unknown3,
|
||||||
DWORD Unknown4);
|
DWORD Unknown4);
|
||||||
|
|
||||||
DWORD
|
BOOL
|
||||||
NTAPI
|
NTAPI
|
||||||
NtUserSetImeInfoEx(
|
NtUserSetImeInfoEx(
|
||||||
PIMEINFOEX pImeInfoEx);
|
PIMEINFOEX pImeInfoEx);
|
||||||
|
|
|
@ -260,13 +260,60 @@ NtUserSetAppImeLevel(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
BOOL FASTCALL UserSetImeInfoEx(LPVOID pUnknown, PIMEINFOEX pImeInfoEx)
|
||||||
APIENTRY
|
|
||||||
NtUserSetImeInfoEx(
|
|
||||||
PIMEINFOEX pImeInfoEx)
|
|
||||||
{
|
{
|
||||||
STUB;
|
PKL pklHead, pkl;
|
||||||
return 0;
|
|
||||||
|
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
|
DWORD APIENTRY
|
||||||
|
|
Loading…
Reference in a new issue